.NET Web服务的WSDL中的URL不正确的问题

时间:2009-05-29 20:37:29

标签: web-services iis asmx

我们在客户端的服务器上安装了一个ASP.NET网站。此站点有一个Web服务,其中包含一些由Flash对象调用以显示新闻源的Web方法。如果你浏览他们的网站(例如:www.domain.com),除闪光灯外一切正常。

问题在于,当我们浏览.asmx时,标题显示主机是其网络内部的子域(internal.domain.com)。显然,当从网络外部浏览时,这不会解析为任何公共IP。这会导致Flash失败,因为Flash对象嵌入在页面上,因此正在运行客户端。

我检查了有问题的服务器上的计算机名称,它甚至不匹配“internal.domain.com” - 它完全不同。从哪里获取这些信息。它不是来自IIS,因为我们没有设置主机头,并且站点的IP设置为(全部未分配)。

我们要么强制Web服务针对特定主机运行,要么我们需要更改服务器上的某些内容,以便它解析为有效的面向公众的主机名。非常感谢任何和所有帮助!!!!

3 个答案:

答案 0 :(得分:1)

解决方案是为www.domain.com添加主机标头

More details here

答案 1 :(得分:0)

虽然你可能已经这样做了,但这始终是一个很好的第一步:

在相关字符串的Flash对象和Web服务的源代码中执行全局查找。

听起来有人可能已将internal.domain.com字符串配置/编码为Flash对象的请求。 (主机:是HTTP请求标头,而不是响应标头,IIRC。)

答案 2 :(得分:0)

Flash对象是否从C#代码获取Web服务URL?如果是这样,它可能会获取您在VS中向项目添加Web引用时选择的默认Web服务URL。因此,它可能指向开发人员的机器/服务器本地的URL,但在实时服务器上无法识别。