Web services .NET Web服务的WSDL中存在错误URL的问题

Web services .NET Web服务的WSDL中存在错误URL的问题,web-services,iis,asmx,Web Services,Iis,Asmx,我们已在客户端服务器上安装了ASP.NET网站。该站点有一个web服务,其中包含两个由Flash对象调用的web方法,以显示新闻提要。如果你浏览他们的网站(例如:www.domain.com),除了flash之外,一切都正常 问题是,当我们浏览到.asmx时,标题显示主机是其网络内部的子域(internal.domain.com)。显然,当从网络外部浏览时,这不会解析为任何公共IP。这会导致Flash失败,因为Flash对象嵌入在页面上,因此正在客户端运行 我在有问题的服务器上检查了计算机名,它

我们已在客户端服务器上安装了ASP.NET网站。该站点有一个web服务,其中包含两个由Flash对象调用的web方法,以显示新闻提要。如果你浏览他们的网站(例如:www.domain.com),除了flash之外,一切都正常

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

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


我们要么需要强制web服务针对特定主机运行,要么需要更改服务器上的某些内容,使其解析为有效的面向公众的主机名。非常感谢您的帮助

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

在Flash对象和web服务的源代码中对所讨论的字符串进行全局查找


听起来好像有人将internal.domain.com字符串配置/编码到了Flash对象的请求中。(主机:是HTTP请求头,而不是响应头,IIRC。)

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

在Flash对象和web服务的源代码中对所讨论的字符串进行全局查找


听起来好像有人将internal.domain.com字符串配置/编码到了Flash对象的请求中。(主机:是HTTP请求头,不是响应头,IIRC。)

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

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

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


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


这是一个WCF svc文件还是一个普通的asmx服务?我实际上并不完全确定,因为我不是最初将web服务添加到项目中的人。有什么区别?我只知道有一个.asmx文件位于站点根目录下的WebServices文件夹中,codebhind(.cs)文件位于App_代码目录中。这几乎就是全部。我们发现我们的客户机使用反向代理处理其web/网络流量,因此通过的主机头与实际的url/主机名不匹配。他们无法解决此问题,因此我们必须去掉调用web服务的flash部分。这是WCF svc文件还是简单的asmx服务?我实际上不完全确定,因为我不是最初将web服务添加到项目中的人。有什么区别?我只知道有一个.asmx文件位于站点根目录下的WebServices文件夹中,codebhind(.cs)文件位于App_代码目录中。这几乎就是全部。我们发现我们的客户机使用反向代理处理其web/网络流量,因此通过的主机头与实际的url/主机名不匹配。他们无法解决此问题,因此我们必须去掉调用web服务的flash部分。感谢您的回答,但是这不是flash的问题,而是web服务本身的问题。如果您在浏览器中直接浏览到.asmx文件,并单击其中一个webmethods,然后检查SOAP头,您将看到“Host:internal.domain.com”。我在整个解决方案中搜索了internal.domain.com(并且知道不会返回任何结果,因为我们显然根本不知道internal.domain.com的存在)。这个主机名必须来自机器本身,但是在哪里?谢谢你的回答,不过这不是flash的问题,而是web服务本身的问题。如果您在浏览器中直接浏览到.asmx文件,并单击其中一个webmethods,然后检查SOAP头,您将看到“Host:internal.domain.com”。我在整个解决方案中搜索了internal.domain.com(并且知道不会返回任何结果,因为我们显然根本不知道internal.domain.com的存在)。这个主机名必须来自机器本身,但在哪里?同样,这是在我们的开发设备上开发的,而我们的开发设备不知道internal.domain.com是什么,所以它永远不可能是默认的。不知何故,客户端服务器上的主机名解析为internal.domain.com而不是www.domain.com。我通过IIS和计算机名字段(my computer->properties->computer name)进行了检查,但没有提到/引用internal.domain.com。同样,这是在我们的开发设备上开发的,我们的开发设备不知道internal.domain.com是什么,所以这绝不会是默认的。不知何故,客户端服务器上的主机名解析为internal.domain.com而不是www.domain.com。我通过IIS和“计算机名”字段(我的计算机->属性->计算机名)进行了检查,没有提到/引用internal.domain.com。