Iis 7 Silverlight 5和Ria服务故障排除[Web-services-AuthenticationService.svc不存在]
我有两个使用Ria服务的Silverlight 5项目的不同版本。两者都在当地工作。旧版本(A)在部署到ISS7时工作。新版本(B)没有。版本B的用户/密码身份验证失败,错误为:Iis 7 Silverlight 5和Ria服务故障排除[Web-services-AuthenticationService.svc不存在],iis-7,wcf-ria-services,silverlight-5.0,Iis 7,Wcf Ria Services,Silverlight 5.0,我有两个使用Ria服务的Silverlight 5项目的不同版本。两者都在当地工作。旧版本(A)在部署到ISS7时工作。新版本(B)没有。版本B的用户/密码身份验证失败,错误为: 查询“登录”的加载操作失败。远程服务器返回错误:NotFound。 在过去的一周里,我参考了各种SO和MSDN帖子,尝试了许多故障排除技术。按照建议将错误日志记录添加到web.config会导致记录以下内容: 服务“/ClientBin/MyApp Web Services AuthenticationServi
- 查询“登录”的加载操作失败。远程服务器返回错误:NotFound。
服务“/ClientBin/MyApp Web Services AuthenticationService.svc”不存在。
由于编译期间出现异常,无法激活服务“/ClientBin/DBCRM Web Services AuthenticationService.svc”。异常消息是:“.svc”文件中缺少“ServiceHost”指令的结束括号..
MyApp.Web.g.cs
文件都是相同的(运行CSDiff),并且都包含以下行:
public AuthenticationContext(): 这是(新的WebDomainClient(新的Uri(“DBCRM Web Services AuthenticationService.svc”,UriKind.Relative))) { }
MyApp.Web.g.cs
是对它的唯一引用,并且它在两个版本中都存在MyApp.Web.g.cs
是一个生成的文件。Visual Studio 2010中的哪个服务创建此文件?另外,我是否可以将其修改为不包含对所讨论的.svc
文件的调用我将开始合并这两个解决方案,看看在哪一点上需要.svc文件。在此期间如有任何想法,将不胜感激 WCF Ria服务注册一个HttpModule以管理WCF Ria服务调用。当请求到达服务器时,该模块读取url并了解要实例化的服务和要调用的方法。因此,找不到任何.svc文件是绝对正常的
不要搞乱.g.C.你的问题不在这里。
查看一下web.config文件,您会发现如下行
<system.web>
<httpModules>
<add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
...
</system.web>
...
还有这个
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="DomainServiceModule" preCondition="managedHandler" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
...
</system.webServer>
...
除了如上所述确保Web.Config中存在“DomainServiceModule”条目外,RIA还需要启用ASP.NET兼容模式。以下是指向Microsoft RIA部署指南的链接:
在“配置Web服务器”部分的第三段中,它指出您需要在Web.Config文件中包含以下内容:
...
...
如果缺少此选项,您将获得问题中描述的行为。在执行任何操作之前,请确保实际部署了包含实际代码的常规
bin
文件夹
我使用MSDEPLOY部署到一个新服务器,但它没有部署bin文件夹。没有这个你哪儿都去不了 感谢您的回复,但是我不确定这有多大帮助?工作版本和非工作版本在各自的web.config中都有这些精确的行。你是否认为非工作版本缺少它们?BryanMy的观点是不要弄乱client或file.svc。如果DomainServiceModule注册没有问题,那么您的问题可能存在于检索方法(可能是db错误?)中的DomainService安装(查看您的构造函数)上,甚至存在于序列化中。再看看另一个问题:我想我会开始在项目的其他地方寻找不一致的地方。我以前见过这个问题,有几个类似的问题通常没有解决,因此我决定做这个新的。这个问题所暗示的只是错误跟踪,我已经提到我正在做的事情。如果你还有其他想法,请告诉我!bryan如果可以使用调试器,请附加调试器,并确保选择在托管和非托管异常上中断。另外,重写domainservice上的OnError,如果错误发生在domainservice内部,则调用此方法。我知道这有点傻,但我用RIA 404解决了大部分问题