WCF RIA Silverlight部署问题

WCF RIA Silverlight部署问题,wcf,silverlight,deployment,ria,Wcf,Silverlight,Deployment,Ria,似乎世界上到处都是在部署RIA WCF服务时遇到问题的人,现在我也是其中之一。我已经尝试了很多东西,但都没有用。我需要WCF RIA来支持我构建的Silverlight 3应用程序 简短的故事是,使用新的WCF RIA服务(2009年11月?)I open VS 2008,创建新项目(silverlight应用程序),启用“.NET RIA服务”。将新项添加到web项目中-Linq2SQL dbml文件(来自前面准备的SQL 2005 DB)并编译。我向web项目域服务添加了一个新项(链接我需要

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

简短的故事是,使用新的WCF RIA服务(2009年11月?)I open VS 2008,创建新项目(silverlight应用程序),启用“.NET RIA服务”。将新项添加到web项目中-Linq2SQL dbml文件(来自前面准备的SQL 2005 DB)并编译。我向web项目域服务添加了一个新项(链接我需要的表)并进行了编译。使用域上下文,我在主页中通过标准RIA get查询“加载”数据,并添加一个文本块来显示返回的数据。建造和运行(卡西尼号)-成功。使用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) 找到解决方案的方法

我在这方面也遇到了一些问题,尽管一旦我找到了它们,这就相对简单了

首先,通读一遍(尽管看起来你已经把大部分内容都遮住了)

检查web.config中新system.webServer位和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问题!)

嗯,


Jordan。

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


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

我遇到了同样的问题。在Windows7下与cassini服务器配合良好。已使用IIS7部署到Windows Server 2008 R2,但无法运行。Fiddler报告正在抛出“EndPointNotFoundException”

由于我完全控制了服务器,我的解决方案是安装VisualStudio2008Express、Silverlight3SDK和用于VS2008的WCFRIA服务测试版。这意味着GAC中已经安装了必要的DLL。我认为这不会影响结果,但我关闭了Web应用程序引用的RIA DLL的“复制本地”

可能是一个非正统的解决方案,但它对我有效!!!事实上,我是在微软支持部的建议下这样做的


顺便说一下,目前通过微软对此的支持非常少。实际上,他们正在试图从内部找出谁将支持这项技术:WCF团队还是Silverlight团队。我知道它仍处于测试阶段,但请注意,“GoLive”许可证并不意味着它完全受支持。我有一个来自WCF团队的人,他不遗余力地在这方面帮助我,但在通话中多次向我声明,目前还没有通过这些渠道得到真正的支持

我自己与这个问题斗争了一段时间,它找不到.svc文件。我很快意识到这不仅仅是我的.svc文件,而是所有的.svc文件。这似乎是一个IIS6问题。事实证明,ASP.NET v4.0x Web服务扩展默认设置为“禁止”。进入Web Service Extensions配置并将ASP.NET v4.0x设置为“允许”,生活一切正常。

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

我这样做是因为VS2010的内置webdeploy功能无法正常工作。批处理脚本使您能够在IIS上运行和调试


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

谢谢你的建议。我已经看过了Heuer的建议,尽管我从来都不知道如何创建一个实际的.SVC文件,所以非常感谢。Fiddler告诉我它正在寻找/PatientBoard/ClientBin/PatientJourneyWeb-PJService.svc/binary——所以我应该创建一个名为PatientJourneyWeb-PJService.svc的文件,并将您概述的文本放在其中?我是否要在Service=“NameOfSerice”中替换“PatientJourneyWeb PJService”?首先,尝试转到/PatientBoard/ClientBin/PatientJourneyWeb-PJService.svc,看看您得到了什么。。。它可能试图将您重定向到登录页面?如果是,请确保IIS设置为anon+forms auth,而不是windows auth。。。如果没有帮助,那么在该位置创建一个名为this的服务(没有二进制代码),并将服务主机指向您的域服务。谢谢您的帮助。直接打开服务时,我得到了404,现在添加svc文件,我得到了500:“找不到ServiceHost指令中作为服务属性值提供的类型‘PatientJourneyWeb.PJService’。”现在一切正常。。。原来我没有在本地复制所有必需的DLL。我通过启用Fusion日志记录(这里描述-)发现了这一点。在我的例子中,我需要“复制本地”4个DLL:System.ComponentModel.DataAnnotations System.Web.DomainServices System.Web.DomainServices.LinqToSql System.Web.Ria(Tim Heuer的博客中没有详细介绍第一个)