Silverlight应用中RIA Service发布至IIS后出现NotFound错误
解决Silverlight DomainService部署到IIS后出现NotFound错误的方案
这种Silverlight结合DomainService部署到IIS后触发的NotFound错误我碰到过好多次,大多是部署配置或IIS设置没跟上VS调试环境的要求,咱们一步步来排查解决:
1. 检查DomainService的服务端点配置
首先确认Web项目的web.config里有没有正确配置DomainService的服务端点:
- 确保
<system.serviceModel>节点下包含DomainService的服务配置,示例如下:<services> <service name="YourProjectNamespace.YourDomainService"> <endpoint address="" binding="webHttpBinding" contract="System.ServiceModel.DomainServices.Server.IDomainService"/> </service> </services> - 同时要保证
<domainServices>端点配置存在,用于支持JSON序列化:<system.serviceModel> <domainServices> <endpoints> <add name="Json" type="System.ServiceModel.DomainServices.Hosting.JsonEndpointFactory, System.ServiceModel.DomainServices.Hosting"/> </endpoints> </domainServices> </system.serviceModel>
2. 验证IIS的MIME类型设置
Silverlight和DomainService需要特定的MIME类型支持,IIS默认可能未配置全:
- 检查
.xap文件的MIME类型是否为application/x-silverlight-app,如果没有,在IIS管理器中找到站点→右键「属性」→「MIME类型」→「添加」来配置 - 确认
.json的MIME类型为application/json,同样如果缺失就添加
3. 调整IIS应用程序池设置
- .NET CLR版本匹配:确保应用程序池的.NET CLR版本和你的项目目标框架一致(比如项目用.NET Framework 4.7.2,就选对应的CLR版本,别选「无托管代码」)
- 权限配置:如果你的DomainService需要访问数据库、本地文件等资源,要保证应用程序池的身份(比如ApplicationPoolIdentity)拥有足够的访问权限
4. 确认发布路径与IIS站点映射
- 检查IIS站点的物理路径是否准确指向你发布的文件夹,确保所有文件(包括Web项目的服务文件、Silverlight的
.xap包)都完整发布,没有遗漏 - 直接在浏览器访问DomainService的服务地址(比如
http://localhost/YourDomainService.svc),如果能正常显示服务说明页面,证明服务部署正常;如果返回404,那就是服务本身没部署到位
5. 启用IIS详细错误日志排查根源
有时候NotFound只是表面错误,开启详细错误能获取更具体的失败原因:
- 打开IIS管理器→选中站点→「错误页」→「编辑功能设置」→选择「详细错误」,重新访问应用后就能看到具体的错误代码和详细描述
6. 修正Silverlight客户端的服务地址
确认Silverlight项目中ServiceReferences.ClientConfig的服务地址是否适配IIS环境:
- 把调试时的本地地址替换为IIS站点的实际URL,示例:
<endpoint address="http://localhost/YourDomainService.svc" binding="customBinding" bindingConfiguration="CustomBinding_YourDomainService" contract="YourDomainServiceContext.IYourDomainService" name="CustomBinding_YourDomainService"/> - 如果用相对路径,要确保在IIS环境下能正确解析到服务端点
另外补充一点:如果有跨域访问的场景(虽然本地IIS一般不会),可以在站点根目录放置clientaccesspolicy.xml或crossdomain.xml文件,配置允许的访问规则。
内容的提问来源于stack exchange,提问作者Faheem Ahmad
相关产品推荐
相关产品推荐

