Ошибка 404 в IIS6 при использовании служб WCF RIA и SL4

#wcf #silverlight-4.0 #iis-6 #asp.net-4.0 #wcf-ria-services

#wcf #silverlight-4.0 #iis-6 #asp.net-4.0 #wcf-ria-services

Вопрос:

Я размещаю приложение SL4 с использованием служб WCF RIA на IIS6 и использую проверку подлинности Windows. Журнал представляет собой что-то вроде:

 /.../ClientBin/NameOfWebApp-AuthenticationDomainService.svc/binary/GetUser ... 404 0 2
  

После успешной предварительной настройки этого приложения на другом сервере 2003 у меня появился опыт настройки .NET Framework 4. Я имею в виду, что я использовал «aspnet_regiis», «servicemodelreg», «httpcfg» и т.д. После этого я даже создал новый веб-сайт, чтобы убедиться, что все на месте. Фактически, когда я пытаюсь получить доступ к моей реальной службе домена с помощью веб-браузера, все работает. Поэтому я считаю, что WCF настроен правильно. Я проверил:

  • разрешены расширения веб-служб для .net framework версии 4
  • .расширение svc настроено на версию 4 aspnet_isapi.dll
  • анонимный доступ отключен, включена только встроенная проверка подлинности Windows, поскольку разрешена не более одна схема проверки подлинности.

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

У вас есть какие-нибудь идеи?

Дополнительная информация:

Я предполагаю, что, поскольку WCF работает в целом, существует проблема с хостом службы домена, который обрабатывает вызовы служб без файлов svc. У меня уже есть следующие настройки в моем web.config:

    <system.web>
     <httpModules>
       <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
     </httpModules>
   </system.web>
   <system.webServer>
     <modules runAllManagedModulesForAllRequests="true">
       <add name="DomainServiceModule"
             preCondition="managedHandler"
             type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, 
             System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, 
             Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
     </modules>
   </system.webServer>
  

Кто-нибудь решил эту проблему с помощью IIS6?

Ответ №1:

Мне суждено ответить на свои собственные вопросы. Для использования установлено расширение .svc aspnet_isapi.dll недостаточно, убедитесь, что файл существует, параметр проверять не следует. Для этого и предназначен DomainServiceModule.