代码之家  ›  专栏  ›  技术社区  ›  Keith

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

  •  1
  • Keith  · 技术社区  · 15 年前

    我们在客户端服务器上安装了一个ASP.NET网站。这个站点有一个Web服务,它有两个Web方法,通过一个Flash对象调用这些方法来显示新闻提要。如果你浏览他们的网站(例如:www.domain.com),除了flash,一切都正常。

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

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

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

    3 回复  |  直到 15 年前
        1
  •  1
  •   Doanair    15 年前

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

    More details here

        2
  •  0
  •   Jeff Meatball Yang    15 年前

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

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

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

        3
  •  0
  •   Tom van Enckevort    15 年前

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