我有两个不同的版本使用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我的主机服务器上。
问题:
哪里是使这个.svc文件的要求设置? 它显然没有必要在A版本,但版本B.同样,文件MyApp.Web.g.cs
是它的唯一的参考,而且在两个版本存在。
MyApp.Web.g.cs
是一个生成的文件。 在Visual Studio 2010中什么样的服务创建此文件? 另外,我可以修改它不包括调用.svc
有问题的文件吗?
我要开始合并这两个解决方案结合在一起,看看在这一点.svc文件变得neccessary。 在此期间任何想法,将不胜感激!
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>
除了确保了“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>
当没有这个,你在你的问题中描述的行为。
在你做任何这确保定期bin
文件夹实际部署包含您的实际代码。
我与MSDEPLOY部署到新的服务器并没有部署bin文件夹。 你不会得到没有任何地方!
文章来源: Troubleshooting Silverlight 5 and Ria services [Web-Services-AuthenticationService.svc does not exist]