似乎世界上充斥着人们在部署RIA WCF服务时遇到问题,现在我也是一个人。我已经尝试了很多东西,但无济于事。我需要WCF RIA来支持我构建的Silverlight 3应用程序。
简短的故事是,使用新的WCF RIA服务(11月9日?)我打开VS 2008,创建新项目(silverlight应用程序),启用“.NET RIA服务”。将新项添加到Web项目 - Linq2SQL dbml文件(从之前准备的SQL 2005 DB)并编译。我向web项目添加了一个新项目 - 域服务(链接我需要的表)并编译。使用域上下文我在MainPage中使用标准RIA获取查询“加载”数据并添加TextBlock以显示返回的数据。建设与发展跑(卡西尼) - 成功。使用VS在本地PC上发布到IIS - 成功。
使用VS发布到测试服务器(IIS6) - 浏览到位置并加载Silverlight应用程序,但Fiddler告诉我,我在所有WCF .svc请求上都有404。使用Fiddler在服务请求上“启动IE”,这是真的 - 404。
我已经运行了aspnet_regiis,ServiceModelReg并为.xap,.xaml,.xbap和.svc添加了mime类型。我已经包含了System.Web.Ria和System.Web.DomainServices DLL以及copy local true。
我需要帮助
a)解决方案
b)寻找解决方案的方法
答案 0 :(得分:3)
我也遇到了一些麻烦,虽然一旦我弄清楚它是相对直接的。
首先,浏览http://timheuer.com/blog/archive/2009/12/10/tips-to-deploy-ria-services-troubleshoot.aspx(虽然看起来大部分内容已被覆盖)。
检查新system.webServer位中的web.config和IIS6的旧位中是否有DomainServiceModule:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="DomainServiceModule" type="System.Web.Ria.Services.DomainServiceHttpModule, System.Web.Ria, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
最后,我必须手动创建我的服务,方法是创建.svc文件,SL正在寻找它们(来自fiddler)并填写:
<%@ ServiceHost Service="NameOfSerice" Factory="System.Web.Ria.DomainServiceHostFactoryEx" %>
确保你也直接访问.svc文件(最后没有/ binary),因为你可以在那里得到一些不错的错误(当你解决404当然!)
HTH,
约旦。
答案 1 :(得分:1)
我在这个问题上打了一段时间,但却找不到.svc文件。我很快意识到这不仅仅是我的.svc,而是所有.svc文件。然后它似乎是一个IIS6问题。事实证明,默认情况下,ASP.NET v4.0x Web服务扩展设置为“禁止”。进入Web Service Extensions配置并将ASP.NET v4.0x设置为“Allowed”,生活一切顺利。
答案 2 :(得分:0)
我遇到了同样的问题。在Windows 7下使用cassini服务器工作得很好。使用IIS7部署到Windows Server 2008 R2,它不起作用。 Fiddler报告称正在抛出'EndPointNotFoundException'。
我的解决方案,因为我完全控制服务器,是为VS2008安装Visual Studio 2008 Express,Silverlight 3 SDK和WCF RIA Services Beta。这意味着必要的DLL已经安装在GAC中。我认为这不会影响结果,但我关闭了Web应用程序引用的RIA DLL的“复制本地”。
可能是非正统的解决方案,但它对我有用!!!实际上,我是根据Microsoft支持的建议做到的。
顺便说一句,此时通过微软支持这一点非常少。他们实际上正试图在内部弄清楚谁将支持这项技术:WCF团队或Silverlight团队。我知道它仍处于测试阶段,但要注意“GoLive”许可并不意味着它完全支持。我有一个来自WCF团队的人,他不顾一切地帮助我,但在电话会议期间多次给我一个免责声明,通过这些渠道并没有真正支持。
答案 3 :(得分:0)
如果有人对此感兴趣,如何使用您自己的批处理脚本将完整的Silverlight解决方案部署到IIS,请阅读以下帖子中的答案:
Is there a Management Service (WMSVC) UI in IIS 7 on Windows 7?
我这样做了,因为没有办法,VS 2010的内置webdeploy功能正在运行。批处理脚本使您可以在IIS上运行和调试。
我知道,这不是这个问题的明确答案,但这是一个非常相似的问题。
答案 4 :(得分:-1)
我认为如果您按照here所述扩展工厂,则只会使用FactoryEx。另外,根据我的帮助文件,全名是System.Web.Ria.Services.DomainServiceHostFactory,但解析器也无法创建该类型,尽管我在GAC中有System.Web.Ria。
我同意 - 在https上部署WCF RIA是一项挑战 - 我还没有让它发挥作用。