v surya dev Ответов: 4

Ошибка Отказа В Доступе К Пути Доступа...


Моя ошибка была:


Ошибка сервера в приложении '/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) в бэкэнде....

4 Ответов

Рейтинг:
2

Member 13889075

[FileNotFoundException: не удалось найти файл 'C:\HostingSpaces\ShivKumar\cgdte.in\wwwroot\Executable\AllotmentLetter_515911-2811075.PDF".]
System.IO.__ошибка.WinIOError(код ошибки Int32, строка maybeFullPath) +10557085
System.IO.FileInfo.get_Length() +10254508
HDED2009_PrintPDF.Construct_Command(String WebUrl, String PDFFileName) +554
HDED2009_PrintPDF.Page_Load(отправитель объекта, EventArgs e) +1125
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
System.Web.Util.CalliEventHandlerDelegateProxy.Обратный вызов(отправитель объекта, EventArgs e) +42
Системы.Веб.Пользовательского интерфейса.Контроль.OnLoad(EventArgs e) +132
System.Web.UI.Control.LoadRecursive() +66
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428


Richard Deeming

ПЯТЬ ЛЕТ слишком поздно, и даже не было попытки ответить на вопрос.

Если вы хотите задать свой собственный вопрос, то ЗАДАВАТЬ ВОПРОС[^]. НЕ разместите свой вопрос как "решение" на чей-то другой вопрос.

Но вам придется предоставить чертову сайту больше информации, чем дамп стека исключений, если вы хотите, чтобы кто-то мог вам помочь.

Рейтинг:
1

StM0n

Веб-серверу не разрешается писать в указанный 'E:\Program Files\ImageUp\WebSite5\Upload'-путь

В значительной степени что

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.
сказал...

Надеюсь, это вам поможет.


v surya dev

я пробовал это... но windows xp не показывает эту вкладку безопасности.... пожалуйста, помогите мне, как дать разрешение на эту папку...

StM0n

XP Professional?

Рейтинг:
0

KM Perumal

Это правильное кодирование, когда ur работает на веб-сервере..его работа не работает в localhost

Response.ContentType = "application//octet-stream";
 Response.AppendHeader("Content-Disposition", "attachment; filename=" + fi.Name);
 Response.TransmitFile(Server.MapPath(fi.Name));
 Response.End();


Manfred Rudolf Bihy

Причина моего голоса один: какое отношение все это имеет к проблеме, которую наблюдает ОП?

v surya dev

мой режим работы по умолчанию-только администратор...

v surya dev

может ли кто-нибудь сказать мне, как дать разрешение на эту папку.... plzzzzzzzzzz

Рейтинг:
0

write2varun

попробуйте запустить приложение от имени администратора


Manfred Rudolf Bihy

Причина моего голосования один: запуск веб-приложения с правами администратора учетной записи является нарушением безопасности.