0

我有一个通过 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。

4

1 回答 1

0

问题似乎是一个简单的 ID-10-T 错误。我们公司在 Internet 选项(连接)下为 LAN 设置设置了自动配置脚本。取消选中这会使所有浏览器都可以使用主机条目,并且一切似乎都按预期/期望工作。虽然我知道代理在使用主机文件时会导致问题,但我不知道我的系统设置(它没有设置为在设置中可见,但隐藏在网络共享的配置文件中)。

在这些(旧)设置下工作的唯一浏览器是未安装的浏览器,而是便携式副本。

由于这解决了我的问题,我不确定天气我现在可以期待其他意想不到的问题......但至少它有效。

于 2013-03-18T10:24:51.530 回答