【发布时间】:2010-10-30 00:08:35
【问题描述】:
我们在客户的服务器上安装了一个 ASP.NET 网站。该站点有一个 Web 服务,其中包含几个由 Flash 对象调用以显示新闻提要的 Web 方法。如果您浏览到他们的网站(例如:www.domain.com),一切正常,除了 flash。
问题在于,当我们浏览到 .asmx 时,标头显示主机是其网络内部的子域 (internal.domain.com)。显然,当从网络外部浏览时,这不会解析为任何公共 IP。这会导致 Flash 失败,因为 Flash 对象嵌入在页面中,因此正在客户端运行。
我检查了有问题的服务器上的计算机名称,它甚至与“internal.domain.com”不匹配 - 这是完全不同的东西。它从哪里得到这些信息。它不是来自 IIS,因为我们没有设置主机头,并且站点的 IP 设置为(全部未分配)。
我们要么需要强制 Web 服务针对特定主机运行,要么需要更改服务器上的某些内容,以便它解析为有效的面向公众的主机名。非常感谢任何和所有帮助!!!!
【问题讨论】:
-
这是 WCF svc 文件还是纯 asmx 服务?
-
我实际上并不完全确定,因为我不是最初将 Web 服务添加到项目中的人。会有什么不同?我只知道网站根目录的 WebServices 文件夹中有一个 .asmx 文件,而代码隐藏 (.cs) 文件位于 App_Code 目录中。这就是它的全部内容。
-
我们发现我们的客户端正在使用反向代理来处理他们的网络/网络流量,因此通过的主机标头与实际的 url/主机名不匹配。他们无法解决这个问题,所以我们不得不删除调用 Web 服务的 flash 部分。
标签: web-services iis asmx