我有两个使用 Ria 服务的 Silverlight 5 项目的不同版本。两者都在本地工作。旧版本 (A) 在部署到 ISS7 时有效。新版本(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 文件在什么时候变得必要。在此期间的任何想法将不胜感激!