【问题标题】:.NET Web Service - Host name resolving improperly.NET Web 服务 - 主机名解析不正确
【发布时间】:2010-10-30 04:48:39
【问题描述】:

重复:这是完全相同的问题,来自与Issue with Incorrect URLs in the WSDL of a .NET Web Service 完全相同的人,并且具有完全相同的答案。让我们关闭它并与另一个合并。


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

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

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

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

【问题讨论】:

    标签: c# .net asp.net web-services asmx


    【解决方案1】:

    我不确定这件事的细节,但我看到了这个关于 WCF 的投诉。答案与在 IIS 中设置主机头有关。

    是 IIS 将主机名传递给 ASP.NET 或 WCF,并在配置时传递主机标头。如果未配置,那么我想它不会将该标头作为“主机名”发送,即使客户端在请求中设置了该标头。

    【讨论】:

    • 你提到这个很有趣。我尝试在 IIS 中设置主机标头(它们正在运行 IIS6)以包括 www.domain.com 和 domain.com,并对此进行测试,我收到“错误的主机名”只是试图浏览到该站点。如果我能够更正该问题,您认为这会解决 Web 服务主机名解析为内部域名的问题吗?
    • 可能。同样,我找不到我读过的文章。有人在 SO (for WCF) 上问这个问题,但我不知道这是不是我看到答案的地方。
    【解决方案2】:

    Web 服务主机名通常在被 .NET 使用时在 web.config 中配置。当它们被闪存消耗时,您可能需要查看闪存文件。 (我的猜测是它仍然是为某种 SIT 环境配置的。

    【讨论】:

    • 不管 Flash 文件如何使用 Web 服务,如果我直接浏览 IE 中的 .ASMX,然后单击任一 Web 方法,主机将显示为 internal.domain.com .这是我可以在 web.config 中覆盖的东西吗?如果有,在哪里?
    • 我以前在我使用的一些服务上看到过这种情况。主要问题是 WSDL 文档推出了错误的域名。我会检查一下,看看这是否是问题所在。无论哪种方式,您都应该能够强制客户端(闪存)连接到服务,而无需真正关心它列出的内部域。
    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    相关资源
    最近更新 更多