We have installed an ASP.NET web site on a client's server. This site has a web service with a couple of web methods that are called by a Flash object in order to display a news feed. If you browse to their site (ex: www.domain.com), everything's working fine except the flash.
我们在客户端的服务器上安装了一个ASP.NET网站。此站点有一个Web服务,其中包含一些Web对象,这些Web方法由Flash对象调用以显示新闻源。如果你浏览他们的网站(例如:www.domain.com),除闪光灯外一切正常。
The issue is that when we browse to the .asmx, the header shows that the Host is a subdomain internal to their network (internal.domain.com). Obviously this doesn't resolve to any public IP when browsing from outside of their network. This causes the Flash to fail since the flash object is embedded on a page and is therefore running client side.
问题是,当我们浏览到.asmx时,标题显示主机是其网络内部的子域(internal.domain.com)。显然,当从网络外部浏览时,这并不能解析为任何公共IP。这会导致Flash失败,因为Flash对象嵌入在页面上,因此正在运行客户端。
I checked the computer name on the server in question, and it doesn't even match "internal.domain.com" - it is something completely different. Where is it getting this information from. It is not coming from IIS, since we have no host headers set up, and the IP for the site is set to (all unassigned).
我检查了有问题的服务器上的计算机名称,它甚至不匹配“internal.domain.com” - 它是完全不同的东西。从哪里获取这些信息。它不是来自IIS,因为我们没有设置主机头,并且站点的IP设置为(全部未分配)。
We either need to force the web service to run against a specific host, or we need to change something on the server so that it resolves to a valid public-facing host name. Any and all help is greatly appreciated!!!!
我们要么强制Web服务针对特定主机运行,要么我们需要更改服务器上的某些内容,以便它解析为有效的面向公众的主机名。任何和所有的帮助非常感谢!!!!
3 个解决方案
#1
The solution is to add a host header for www.domain.com
解决方案是为www.domain.com添加主机头
更多细节在这里
#2
While you probably did this already, it's always a good first step:
虽然你可能已经这样做了,但它始终是一个很好的第一步:
Do a global Find in the source code of both the Flash object and the web service for the string in question.
在相关字符串的Flash对象和Web服务的源代码中执行全局查找。
It sounds like someone may have configured/coded the internal.domain.com string into the Flash object's request. (Host: is a HTTP Request header, not Response header, IIRC.)
听起来有人可能已将internal.domain.com字符串配置/编码为Flash对象的请求。 (主机:是HTTP请求标头,而不是响应标头,IIRC。)
#3
Does the Flash object get the web service URL from the C# code? If so, it might be getting the default web service URL that you choose when adding a Web Reference to your project in VS. Therefore it might be pointing to a URL locally to the developer's machine/server which is not recognized on the live server.
Flash对象是否从C#代码获取Web服务URL?如果是这样,它可能会获取您在VS中向项目添加Web引用时选择的默认Web服务URL。因此,它可能指向本地到开发人员的计算机/服务器的URL,该URL在实时服务器上无法识别。
#1
The solution is to add a host header for www.domain.com
解决方案是为www.domain.com添加主机头
更多细节在这里
#2
While you probably did this already, it's always a good first step:
虽然你可能已经这样做了,但它始终是一个很好的第一步:
Do a global Find in the source code of both the Flash object and the web service for the string in question.
在相关字符串的Flash对象和Web服务的源代码中执行全局查找。
It sounds like someone may have configured/coded the internal.domain.com string into the Flash object's request. (Host: is a HTTP Request header, not Response header, IIRC.)
听起来有人可能已将internal.domain.com字符串配置/编码为Flash对象的请求。 (主机:是HTTP请求标头,而不是响应标头,IIRC。)
#3
Does the Flash object get the web service URL from the C# code? If so, it might be getting the default web service URL that you choose when adding a Web Reference to your project in VS. Therefore it might be pointing to a URL locally to the developer's machine/server which is not recognized on the live server.
Flash对象是否从C#代码获取Web服务URL?如果是这样,它可能会获取您在VS中向项目添加Web引用时选择的默认Web服务URL。因此,它可能指向本地到开发人员的计算机/服务器的URL,该URL在实时服务器上无法识别。