我有一个通过 RIA 使用数据的 silverlight 应用程序。一些方法以一种可以通过服务参考在 Silverlight 和 WPF 应用程序中使用的方式公开。在开发时,这些服务通过 localhost 调用,一切正常。我已经设置了我的主机文件,以便它可以在子域.domain.com。现在(也经过几次重新启动)当我通过不同的浏览器访问 .svc 时,我在同一 URL 上的 Chrome 和 Internet Explorer 中得到不同的响应。
Chrome 显示:[Name of] Service,要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用命令行中的 svcutil.exe 工具执行此操作,语法如下: ...您还可以将服务描述作为单个文件访问:...
Internet explorer, Firefox 显示:[未显示名称] 服务,要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用命令行中的 svcutil.exe 工具执行此操作,语法如下: ... Internet Explorer 中缺少最后一部分(第二个 url,单个文件访问链接)。
但最糟糕的是,如果我在添加服务引用时在 VS2012 中输入相同的 url,我会收到以下消息:
请求失败,HTTP 状态为 404:未找到。元数据包含无法解析的引用:...
服务如何对几乎相同的请求给出三种不同的响应?
更新:也许有用的信息是该服务不包含在单独的 .svc 文件中,而是一个 ProjectDomainService.cs(和 AuthenticationDomainService.cs),并且 .svc url 以某种方式自动捕获(服务器上不存在此类文件)。而且,如果我删除,Chrome 的行为与 Internet Explorer 相同
<add name="Soap" type="Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
来自 web.config。
此外,ping subdomain.domain.com 会显示我的本地 IP。