|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
Доброго дня! Запускаю на локальном компьютере сайт, который при нажатии на кнопку должен сохранять файл на диск C с помощью элемента FileUpload. Код простейший: Код: c# 1. 2. 3. 4. 5. 6. 7.
При нажатии на кнопку получаю: Отказано в доступе по пути "C:\TEST". Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. Сведения об исключении: System.UnauthorizedAccessException: Отказано в доступе по пути "C:\TEST". ASP.NET не имеет права обращаться к запрошенному ресурсу. Рекомендуется предоставить идентификатору запроса ASP.NET права доступа к этому ресурсу. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE}\ASPNET для IIS 5 или Network Service на IIS 6), который используется, если приложение не олицетворяется. Если приложение олицетворяется через задание <identity impersonate="true"/>, идентификатором будет служить идентификатор анонимного пользователя (обычно IUSR_MACHINENAME) или идентификатор пользователя запроса с проверенной подлинностью. Для предоставления ASP.NET прав на запись в файл, щелкните на файле правой кнопкой мыши в окне "Проводник", выберите "Свойства", затем вкладку "Безопасность". Выберите "Добавить" для добавления соответствующего пользователя или группы. Выделите учетную запись ASP.NET и установите флажки для требуемых прав доступа. Ошибка источника: Строка 26: Строка 27: FileUpload1.SaveAs(uploadsDirVar); Строка 28: Строка 29: } Исходный файл: c:\inetpub\wwwroot\wwwrootTest\Test.aspx.cs Строка: 27 Трассировка стека: [UnauthorizedAccessException: Отказано в доступе по пути "C:\TEST".] System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +7716339 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) +1162 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +61 System.IO.FileStream..ctor(String path, FileMode mode) +55 System.Web.HttpPostedFile.SaveAs(String filename) +95 System.Web.UI.WebControls.FileUpload.SaveAs(String filename) +25 Default2.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\wwwrootTest\Test.aspx.cs:27 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +78 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +100 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2863 -------------------------------------------------------------------------------- Информация о версии: Платформа Microsoft .NET Framework, версия:2.0.50727.5420; ASP.NET, версия:2.0.50727.5420 Вроде, все понятно, но в WINDOWS 7 не нахожу юзера aspnet. В итоге упорной борьбы и поиска по форумам было проделано следущее: 1. Задание <identity impersonate="true"/>, и, соответственно, предоставление прав на запись в папку юзеру IUSR (юзер IUSR_имя моего компьютера у меня не нашелся) - не помогло 2. Предоставление прав доступа на запись в папку юзеру NETWORK SERVICE - не помогло. 3. Пыталась выяснить, под какой учетной записью запускается мое приложение, но в AppPool тоже не нашла об этом информации. Нид хелп! Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 11:24 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
1. IIS_IUSRS 2. Попробуйте дать права просто всем пользователям писать в корень (нахера в корень системного диска писать? вы еще в \windows\system32\ напишите ) 3. Запускайте пул от имени админи или конкретного пользователя, который имеет права на запись в корень 4. измените ваш "простейший" код : Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 12:01 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
SanSYS, несмотря на Ваш недружественный тон, все-равно спасибо! Не думала, что проблема реально может быть в том, что пишу файл в корень...Однако же! Вопрос снят! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 12:57 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
Поляна, в Wibdows 7 каждый пул приложений, по умолчанию, запускается от специаильной учетной записью ApplicationPoolIdentity. Именно этой учетной записи следует давать права. Подробно это описано в статье Application Pool Identities . Полянано в WINDOWS 7 не нахожу юзера aspnet. Забудьте про него. Он был нужен только на под WinXP, а точнее на под IIS 5.x где не было пулов приложений. Поляна1. Задание <identity impersonate="true"/>, и, соответственно, предоставление прав на запись в папку юзеру IUSR (юзер IUSR_имя моего компьютера у меня не нашелся) - не помогло Не стоит использовать имперсонификацию ради попытки решить проблемы с правами. Это можно решить и без нее. Пользователи IUSR это тоже "старое" решение. Поляна2. Предоставление прав доступа на запись в папку юзеру NETWORK SERVICE - не помогло. Учетная запись NETWORK SERVICE использовалась в IIS 6. В IIS 7 лучше использовать ApplicationPoolIdentity так она легко позволяет изолировать разные пулы приложений. Поляна3. Пыталась выяснить, под какой учетной записью запускается мое приложение, но в AppPool тоже не нашла об этом информации. http://learn.iis.net/Content_Cache/624/appPoolid1.png SanSYS1. IIS_IUSRS Уточнение - это метод для IIS 5 и 6. SanSYS3. Запускайте пул от имени админи или конкретного пользователя, который имеет права на запись в корень Только не от администратора. Приложение следует разрабатывать и тестировать с использованием ограниченнной учетной записи, а то позже при деплойменте приложения могут начаться "неожиданные" проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 14:04 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
bazile SanSYS3. Запускайте пул от имени админи или конкретного пользователя, который имеет права на запись в корень Только не от администратора. Приложение следует разрабатывать и тестировать с использованием ограниченнной учетной записи, а то позже при деплойменте приложения могут начаться "неожиданные" проблемы. Да.. но все те же проблемы с правами, не более ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 16:59 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
ПолянаSanSYS, несмотря на Ваш недружественный тон, все-равно спасибо! Не думала, что проблема реально может быть в том, что пишу файл в корень...Однако же! Вопрос снят! Сорри, не хотел показаться грубым ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 17:00 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
SanSYSДа.. но все те же проблемы с правами, не более ) Безусловно. Которые, как показывает практика, решаются запуском приложения под учетной записью администратора. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2012, 17:29 |
|
ASP.NET не имеет права обращаться к запрошенному ресурсу
|
|||
---|---|---|---|
#18+
asp mvc 5 на локале (iis express, все права) в папку App_Data норм добавляло файлы: Код: c# 1.
а вот в папку "Content" та же ошибка. Решением оказалось добавление расширения: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2018, 08:05 |
|
|
start [/forum/topic.php?fid=18&fpage=23&tid=1355347]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
others: | 39ms |
total: | 204ms |
0 / 0 |