使用WCF RIA服务和SL4时IIS6上出现404错误

时间:2011-04-14 06:41:42

标签: wcf silverlight-4.0 iis-6 asp.net-4.0 wcf-ria-services

我正在IIS6上使用WCF RIA服务托管SL4应用程序,我正在使用Windows身份验证。日志就像:

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

之前在另一台2003服务器上成功设置了这个应用程序,我有了配置.NET Framework 4的经验。我的意思是我使用了“aspnet_regiis”,“servicemodelreg”,“httpcfg”等。我甚至创建了一个新的之后的网站,以确保一切都到位。事实上,当我尝试使用Web浏览器访问我的实际域服务时,一切正常。所以我认为WCF设置正确。我查了一下:

  • 允许使用.net framework v4的Web服务扩展
  • .svc扩展名配置为v4 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 个答案:

答案 0 :(得分:2)

我注定要回答我自己的问题。将.svc扩展名设置为使用aspnet_isapi.dll是不够的, 验证文件是否存在 设置不应该被选中。这就是DomainServiceModule的用途。