问题描述
|
我正在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,PublicKeyToken=31bf3856ad364e35\" />
</modules>
</system.webServer>
有没有人用IIS6解决了这个问题?
解决方法
我注定要回答我自己的问题。仅将.svc扩展名设置为使用aspnet_isapi.dll是不够的,因此不应该检查该文件是否存在。那就是DomainServiceModule的目的。