WCF RIA Silverlight部署问题

时间:2010-01-07 00:07:22

标签: wcf silverlight deployment ria

似乎世界上充斥着人们在部署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)寻找解决方案的方法

5 个答案:

答案 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是一项挑战 - 我还没有让它发挥作用。