Получение доступа отказано в попытке прочитать файл в APP_DATA в проекте ASP.NET - какие -нибудь указатели?
Вопрос
У меня 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);