Получение доступа отказано в попытке прочитать файл в APP_DATA в проекте ASP.NET - какие -нибудь указатели?

StackOverflow https://stackoverflow.com/questions/2128327

  •  22-09-2019
  •  | 
  •  

Вопрос

У меня XML -файл, хранящийся в APP_DATA, который используется только для чтения некоторой конфигурации при запуске. Когда я пытаюсь открыть его в своем коде, я получаю доступ к пути ... отказано в сообщении.

У меня проблемы с пониманием почему и как это решить. Я предполагаю, что в теории я должен изменить разрешения на файл (и каталог), но это ничего не изменило.

Чтобы дать немного больше фона: 1. Это файл, связанный с проектом, поэтому настройка, созданная VS2008, записывает его в правильное место во время установки. Я не думал, что мне нужно сделать что -нибудь необычное пост установки, так что приложение ASP.NET имело доступ. 2. Когда я попробовал публиковать это на местном уровне, у меня не было никаких проблем. - Это только на тестовом сервере Windows 2003. 3. Я запустил простую страницу, чтобы понять эффективного пользователя IIS - это NT Authority Network Service. Я попытался предоставить «полный доступ» этому пользователю этому файлу, и все же он не работает.

Код, чтобы открыть его, прост:

FileStream fs = new FileStream(Server.mapPath(s), FileMode.Open);

Где s определяется как '~/app_data/myfile.xml

Я даже скопировал и вставил полный путь и имя файла (за исключением) и попробовал «Dir» на нем, и он действительно присутствует (например, обойти опечатку).

Я также пытался запустить aspnet_regiis.exe /s в соответствии с некоторыми предложениями.

Это меня сбило с толку.

Это было полезно?

Решение

На самом деле, я думаю, что нашел это. Мне нужно было открыть файл следующим образом:

new FileStream(Server.MapPath(s), FileMode.Open, FileAccess.Read);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top