故障排除的Silverlight 5和RIA服务[网络服务,AuthenticationServic

2019-08-02 00:34发布

我有两个不同的版本使用RIA服务一个Silverlight 5项目。 在本地工作。 在部署到ISS7的旧版本(A)的作品。 新版本(B)没有。 虽然对版本B的与错误失败,用户名/密码认证:

  • Load operation failed for query 'Login'. the remote server returned an error: NotFound.

在过去的一周中引用各种SO和MSDN文章中,我已经尝试了许多故障排除技术。 如建议增加错误日志这里到下面的Web.config结果被记录:

  • The service '/ClientBin/MyApp-Web-Services-AuthenticationService.svc' does not exist.

研究导致发现这个论坛的帖子提示创建一个名为/路径是寻找一个虚拟.svc文件。 结果:

  • The service '/ClientBin/DBCRM-Web-Services-AuthenticationService.svc' cannot be activated due to an exception during compilation. The exception message is: The ending bracket '>' for the 'ServiceHost' directive is missing in the '.svc' file..

上述错误的细节并不重要很大程度上是因为它是我提供的空白.svc文件。 它只是服务,以确认这一事实,该项目确实是依赖于它

这里的踢球者...工作版本包含该文件要么,但它不会抛出异常。

搜索任何提及需要服务于这两个解决方案意外地证明了一个结果。 两个MyApp.Web.g.cs文件是相同的(跑CSDiff)和都包含行:

  • public AuthenticationContext() : this(new WebDomainClient<IAuthenticationServiceContract>(new Uri("DBCRM-Web-Services-AuthenticationService.svc", UriKind.Relative))) { }

两者有相同的封装/部署设置。 我部署到一个文件系统,然后通过将文件复制到IIS我的主机服务器上。

问题:

  1. 哪里是使这个.svc文件的要求设置? 它显然没有必要在A版本,但版本B.同样,文件MyApp.Web.g.cs是它的唯一的参考,而且在两个版本存在。

  2. MyApp.Web.g.cs是一个生成的文件。 在Visual Studio 2010中什么样的服务创建此文件? 另外,我可以修改它不包括调用.svc有问题的文件吗?

我要开始合并这两个解决方案结合在一起,看看在这一点.svc文件变得neccessary。 在此期间任何想法,将不胜感激!

Answer 1:

WCF RIA服务,以管理WCF RIA服务调用注册一个HTTP模块。 当请求到达该模块读取URL和理解,以实例化的服务,并调用哪个方法服务器。 所以这是绝对正常的,你没有找到任何.svc文件
不要用你的.g.cs问题不在这里一团糟。
看看你的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>


Answer 2:

除了确保了“DomainServiceModule”项目都不存在Web.Config中如上所述,另一件事是,RIA需要ASP .NET兼容模式下启用。 下面是微软的RIA部署指南的链接:

http://msdn.microsoft.com/en-us/library/ff426912(v=vs.91).aspx

在“配置Web服务器”部分的第三段,它指出您需要满足以下在你的web.config文件:

<system.serviceModel> ... <serviceHostingEnvironment aspNetCompatibilityEnabled = “真” multipleSiteBindingsEnabled = “真”/> ... </system.serviceModel>

当没有这个,你在你的问题中描述的行为。



Answer 3:

在你做任何这确保定期bin文件夹实际部署包含您的实际代码。

我与MSDEPLOY部署到新的服务器并没有部署bin文件夹。 你不会得到没有任何地方!



文章来源: Troubleshooting Silverlight 5 and Ria services [Web-Services-AuthenticationService.svc does not exist]