4

似乎世界上到处都是在部署 RIA WCF 服务时遇到问题的人,现在我也是。我已经尝试了很多东西,但无济于事。我需要 WCF RIA 来支持我构建的 Silverlight 3 应用程序。

简短的故事是,使用新的 WCF RIA 服务(11 月 9 日?)我打开 VS 2008,创建新项目(silverlight 应用程序),启用“.NET RIA 服务”。将新项目添加到 Web 项目 - Linq2SQL dbml 文件(来自之前准备的 SQL 2005 DB)并编译。我在 web 项目中添加了一个新项目 - 域服务(链接我需要的表)并编译。使用域上下文,我在 MainPage 中使用标准 RIA get 查询“加载”数据,并添加一个 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 包含在本地副本中。

我需要帮助

a) 解决方案

b) 寻找解决方案的方法

4

5 回答 5

3

我也遇到了一些麻烦,尽管一旦我弄清楚它们就相对简单了。

首先,通过http://timheuer.com/blog/archive/2009/12/10/tips-to-deploy-ria-services-troubleshoot.aspx运行(尽管您似乎已经涵盖了大部分内容)。

检查您的 DomainServiceModule 在 web.config 中的新 system.webServer 位和 IIS6 的旧位:

    <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 问题!)

高温下,

约旦。

于 2010-01-07T00:30:38.270 回答
1

我自己在找不到 .svc 文件的情况下解决了这个问题。我很快意识到这不仅仅是我的 .svc,而是所有 .svc 文件。然后它似乎是一个 IIS6 问题。事实证明,ASP.NET v4.0x Web 服务扩展默认设置为“禁止”。进入 Web 服务扩展配置并将 ASP.NET v4.0x 设置为“允许”,一切都很好。

于 2010-05-18T16:44:13.177 回答
0

我遇到了同样的问题。在 Windows 7 下使用 cassini 服务器运行良好。使用 IIS7 部署到 Windows Server 2008 R2,但无法正常工作。Fiddler 报告正在引发“EndPointNotFoundException”。

由于我完全控制了服务器,因此我的解决方案是安装 Visual Studio 2008 Express、Silverlight 3 SDK 和 VS2008 的 WCF RIA Services Beta。这意味着 GAC 中已经安装了必要的 DLL。我认为这不会影响结果,但我为 Web 应用程序引用的 RIA DLL 关闭了“复制本地”。

可能是一个非正统的解决方案,但它对我有用!!!实际上,我是在 Microsoft Support 的建议下这样做的。

顺便说一句,此时通过 Microsoft 对此的支持非常稀少。他们现在实际上正在内部试图弄清楚谁将支持这项技术:WCF 团队或 Silverlight 团队。我知道它仍处于测试阶段,但请注意,“GoLive”许可证并不意味着它的完全支持。我有来自 WCF 团队的人在这方面竭尽全力帮助我,但在电话会议期间多次给我免责声明,说它还没有通过这些渠道得到真正的支持。

于 2010-03-03T03:48:52.017 回答
0

如果有人有兴趣,如何使用自己的批处理脚本将完整的 Silverlight 解决方案部署到 IIS,请阅读我在这篇文章中的回答:

Windows 7 上的 IIS 7 中是否有管理服务 (WMSVC) UI?

我这样做了,因为没有办法,VS 2010 的内置 webdeploy 功能正在工作。批处理脚本使您可以在 IIS 上运行和调试

我知道,这不是这个问题的明确答案,但它是一个非常相似的问题。

于 2013-05-08T08:40:02.190 回答
-1

如果您按照此处所述扩展工厂,我认为您只会使用 FactoryEx 。另外,根据我的帮助文件,全名是System.Web.Ria.Services.DomainServiceHostFactory,但解析器也无法创建该类型,尽管我在GAC中有System.Web.Ria。

我同意 - 通过 https 部署 WCF RIA 是一个挑战 - 我还没有让它工作。

于 2010-01-11T23:06:31.950 回答