2009-06-03 2 views
0

У меня есть веб-сервис WCF, который я размещаю в IIS (фактически работает в веб-хосте Visual Studio, то есть Cassini).Разрешения для файлов WCF?

У меня есть файл, который мне нужно получить в корневом каталоге веб-каталога из службы, и у меня возникли проблемы с выяснением идентификатора пользователя, который служба обращается к каталогу как. Я дал разрешение на ASPNET, NETWORK SERVICE и IUSR, но ни один из них, похоже, не работает.

Кто-нибудь знает, что пользователь выполняет службу WCF, как при размещении в IIS?

ДОПОЛНИТЕЛЬНО:

Действительно, служба WCF работает, как я (мой аккаунт окна), но по какой-то причине, он все еще не может открыть файл в корневом каталоге. Файл завершился с ошибкой «Доступ запрещен». Я дал «Everyone» полный контроль над папкой, и это, похоже, не имеет значения.

ответ

0

Хорошо ... выяснил вопрос. Оказывается, файл, который я пытался открыть, был помечен как доступный только для чтения, поэтому .NET не смог открыть его для записи. Передано FileAccess.Read в метод File.Open(), и теперь он отлично открывается.

Не относится к самому WCF.

0

Если вы используете yr serive, используя Cassini, то это будет пользователь, который зарегистрирован на этом компьютере. Так что, вероятно, ваше имя пользователя, которое вы использовали для входа на эту машину. Предоставьте этому пользователю разрешение на чтение файла и попробуйте его.

В IIS это зависит от конфигурации вашего приложения. Вы можете создать пул приложений под любой учетной записью пользователя и запустить приложение yr с использованием этого пула. Пользователь по умолчанию в IIS - NETWORK SERVICES.

+0

Хммм ... у обоих этих пользователей есть полные разрешения для каталога, но он по-прежнему не работает. Может быть, я что-то упустил ... –