IIS7 - чтение файла из пула приложений - PullRequest
1 голос
/ 13 октября 2011

РЕДАКТИРОВАТЬ: Я сделал это более запутанным, чем это должно быть. Забудьте, что это клиент Silverlight. У меня есть служба WCF, размещенная в IIS, которая должна иметь доступ к файлу в локальной файловой системе. Потребителем этой услуги будет Silverlight, но я не думаю, что это важно, и должен был это не учитывать.

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

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

Служба должна иметь доступ к файловой системе. Как правильно это сделать?

Спасибо

-Скотт

1 Ответ

0 голосов
/ 14 октября 2011

Прежде всего вычеркните из уравнения то, чего не будет в уравнении в реальной жизни.В реальном приложении вы не собираетесь читать с C: \.Поэтому стоит подумать, откуда вы будете читать.

Я предлагаю, чтобы ваш файл был в папке App_Data на веб-сайте.Поэтому попробуйте поместить туда файл, а затем получить к нему доступ из службы.Вы можете разрешить физический файл App_Data с помощью:

string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Path\SomeFile.txt");
...