Проблемы при использовании IIS7 и WCF - не могу даже загрузить .SVC - PullRequest
2 голосов
/ 22 декабря 2010

Я разработал очень простой WCF с использованием фреймворка v2.0.50727, который возвращает строку - типичный сценарий HelloWorld (). Тем не менее, конфигурация является абсолютной болью, и я действительно не понимаю, что я делаю неправильно. Примечание. Я являюсь администратором на моей машине с Windows 7.

Итак, шаг за шагом, вот что я делаю:

  1. Создан новый сайт, указывающий на мой каталог WCF. Каталог содержит файлы .svc, Web.config и bin, в которых находятся .dll и .pdb

  2. Попробуйте и перейдите на сайт:

    Ошибка конфигурации - невозможно прочитать файл конфигурации из-за недостаточных прав доступа

    Поэтому я предоставляю учетной записи IIS_IUSRS доступ к каталогу.

  3. Другая ошибка:

    У вас нет разрешения на просмотр этого каталога или страницы из-за конфигурации списка управления доступом (ACL) или параметров шифрования для этого ресурса на веб-сервере.

    Поэтому я гарантирую, что пользовательские разрешения распространяются вниз - что они и есть. Та же проблема возникает и снова и снова - так что время попробовать что-то другое.

  4. Я смотрю на AppPools, и они используют недавно созданный для меня, используя интегрированный режим 4.0. Я изменяю это на DefaultAppPool

    У вас нет разрешения на просмотр этого каталога или страницы из-за конфигурации списка управления доступом (ACL) или параметров шифрования для этого ресурса на веб-сервере.

  5. Я включаю олицетворение ASP.NET - чтобы проходить через моего пользователя вместо значения по умолчанию

    Обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера.

    Я изменяю конвейер на Classic ASP.NET Pool (что отключило безопасность ASP.NET)

    У вас нет разрешения на просмотр этого каталога или страницы из-за конфигурации списка управления доступом (ACL) или параметров шифрования для этого ресурса на веб-сервере.

  6. Превратил олицетворение ASP.NET

    У вас нет разрешения на просмотр этого каталога или страницы из-за конфигурации списка управления доступом (ACL) или параметров шифрования для этого ресурса на веб-сервере.

-

Пожалуйста, кто-нибудь может подсказать мне, что я делаю не так? IIS 6 просто впустил бы меня сразу, и я делаю значительные настройки для загрузки .svc

С уважением,

Dominic

1 Ответ

3 голосов
/ 23 декабря 2010

Вам не нужно добавлять обработчики для .svc. Это происходит при установке .NET.

Проблема не в обработчиках; это безопасность. Олицетворение ASPNET выглядит как красная сельдь. Это для службы WCF, верно? Может быть, вы лаете не на то дерево.

Вы сказали, что вы гарантировали, что права "распространяются вниз" - но проверьте это. Например, когда вы перемещаете файл из одного каталога в другой, файл может содержать ACL, который не является «унаследованным» ACL, который можно ожидать, если вы просто создадите файл в папке изначально.

Что нужно проверить:

  • IIS_IUSRS должен иметь разрешения на чтение + выполнение в физическом каталоге
  • Подкаталог bin должен иметь соответствующие разрешения для IIS_IUSRS.
  • DLL в подкаталоге bin должна быть читабельной
  • вы, вероятно, хотите, чтобы для анонимного доступа был включен vdir.
  • вам нужен файл web.config с надлежащими разрешениями (но в этом случае вы получите другую ошибку)
  • файл .svc должен иметь соответствующие разрешения

Один шаг к тому, чтобы заставить работать .svc, - это загрузить простую страницу .htm для загрузки. Это работает? Как только вы это получите, загрузите простую страницу .ASPX с кодом из каталога bin. Получив это, вы сможете запустить .svc без проблем.

На этом этапе вам просто нужно выполнить специфичную для WCF конфигурацию.

...