Ошибка Отказа В Доступе К Пути Доступа...
Моя ошибка была:
Ошибка сервера в приложении '/WebSite5'.
Доступ к пути 'E:\Program Files\ImageUp\WebSite5\Upload' запрещен.
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения Об Исключении: Система.UnauthorizedAccessException: доступ к пути 'E:\Program Files\ImageUp\WebSite5\Upload' запрещен.
ASP.NET не имеет права доступа к запрошенному ресурсу. Рассмотрите возможность предоставления прав доступа к ресурсу пользователю. ASP.NET запросите удостоверение личности. ASP.NET имеет базовое удостоверение процесса (обычно {MACHINE}\ASPNET на IIS 5 или сетевую службу на IIS 6 и IIS 7, а также настроенное удостоверение пула приложений на IIS 7.5), которое используется, если приложение не олицетворяет себя. Если приложение олицетворяет себя через <identity impersonate="true">, то это будет анонимный пользователь (обычно IUSR_MACHINENAME) или аутентифицированный пользователь запроса.
Чтобы грант ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в Проводнике, выберите "Свойства" и выберите вкладку Безопасность. Нажмите кнопку "Добавить", чтобы добавить соответствующего пользователя или группу. Выделите ASP.NET учетная запись и установите флажки для желаемого доступа.
Ошибка Источника:
Строка 168: Ответ.ContentType = "application//octet-stream";
Строка 169: Ответ.AppendHeader("Content-Disposition", "attachment; filename=" + fi.Name);
Строка 170: Ответ.TransmitFile(Сервер.MapPath(Fi интернет.Название));
Строка 171: Ответ.Конец();
Строка 172: }
Исходный файл: e:\Program Files\ImageUp\WebSite5\Default.aspx.cs строка: 170
трассировка стека:
[UnauthorizedAccessException: доступ к пути 'E:\Program Files\ImageUp\WebSite5\Upload' запрещен.]
System.IO.__ошибка.WinIOError(код ошибки Int32, строка maybeFullPath) +9722910
Системы.ИО.Типа FileStream.Метод init(string путь, режим filemode необходимо открыть флагами fileaccess, int32 и прав, логическое useRights, поделиться обменник, типа int32 значение bufferSize, варианты FileOptions, в разделе security_attributes secAttrs, строки msgPath, логическое bFromProxy, логическое useLongPath) +1142
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +83
Системы.Веб.Объект HttpResponse.TransmitFile(строковое имя файла, смещение Int64, длина Int64) +132
Системы.Веб.Объект HttpResponse.TransmitFile(строковое имя файла) +15
_Default.lnkDownload_Click(отправитель объекта, EventArgs e) in e:\Program файлы\ImageUp\WebSite5\Default.aspx.cs:170
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка связи.OnClick(EventArgs e) +118
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка связи.RaisePostBackEvent(String eventArgument) +113
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка связи.Системы.Веб.Пользовательского интерфейса.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
Системы.Веб.Пользовательского интерфейса.Страницы.RaisePostBackEvent(postData namevaluecollection, который) +176
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
Информация о версии: Microsoft .NET Framework версия:4.0.30319; ASP.NET версия:4.0.30319.272
v surya dev
Мой код был:
охраняемых недействительными lnkDownload_Click(объект отправителя, EventArgs в электронной)
{
LinkButton lnkbtn = отправитель как LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer как GridViewRow;
int ImageId = конвертировать.ToInt32(GridView1.DataKeys[gvrow.Параметр rowindex].Значение.Метод toString());
имя строки, тип;
using (SqlConnection con = new SqlConnection(strCon))
{
использование (SqlCommand cmd = new SqlCommand())
{
УМК.CommandText = "выберите ImageName, FileName, AddedOn из ImageInfo, где ImageId=@ImageId";
cmd.параметры.AddWithValue ("@ImageId", ImageId);
УМК.Подключение = кон;
против.Открыть();
SqlDataReader dr = cmd.Метода executereader();
если (dr.Read())
{
// Ответ.ContentType = dr["AddedOn "].ToString();
// Ответ.AddHeader("Content-Disposition", "attachment;filename=\"" + dr["ImageName"] + "\"");
Системы.ИО.FileInfo может Интернет = новый система.ИО.FileInfo Может(Сервер.MapPath("Загрузить"));
Ответ.Четкий();
Ответ.ContentType = "application//octet-stream";
Ответ.AppendHeader("Content-Disposition", "attachment; filename=" + fi.Name);
Ответ.TransmitFile(Сервер.MapPath(Fi интернет.Название));
Ответ.Конец();
}
}
}
}
я загружаю изображения успешно, но... когда я попытался загрузить файл, он показывает ошибку в c#....
я использовал тип данных varbinary(max) в бэкэнде....