当通过外部主机名的服务返回 wsdl html 而不是预期的响应信封时



我在 UAT Web 服务器上部署了一个 IIS 承载的 WCF Web 服务。在 IIS 中,我在同一 Web 服务上具有站点绑定 - 一个用于内部访问(例如:uat-nodotsinternalonly),另一个用于外部访问(例如:mysvc.uat.mydomain.com)。

当我使用 SoapUI 测试内部主机名 (http://uat-nodotsinternalonly/MyService.svc) 时,它会调用服务并按预期返回响应信封。

当我使用 SoapUI 测试外部主机名 (https://mysvc.uat.mydomain.com/MyService.svc) 时,它会调用服务并返回 WSDL HTML,就像在 Web 浏览器中看到的那样,而不是预期的响应信封。

我们需要暴露防火墙,以便与供应商进行测试。我们的外部客户端可以使用外部主机名浏览到我们的 Web 服务,并在其 Web 浏览器中接收 WSDL,但是当他们调用它时,它会失败并显示 302 错误。

我远非安全专家,但我相信我们的防火墙正在处理安全性,然后通过http转发到UAT服务器。重定向和变体似乎在 IIS 中的 DNS 管理方式或设置方面需要更改。有没有人对如何缩小范围以便对外部服务的调用起作用有建议?

我们也有一个 WCF 服务,在 SoapUI 中,它在调用方法时返回 WSDL HTML 而不是预期的响应。 这是一个启用 SSL 的服务,在我们的例子中,解决方案是在创建请求编辑端点 URL,使其使用 https 而不是 http。 这是因为我们发现,由于某种原因,即使您在创建请求时最初指定了 https,它也默认为 http。 下面介绍如何在 SoapUI 中编辑终结点 URL:

  1. 在请求窗口中,单击 URL 上的下拉箭头。
  2. 选择[编辑当前..]

将 http 更改为 https,然后重试您的请求。

客户端收到 302 错误的问题是客户端未向我们的 Web 服务发送 SOAP 请求信封。客户端只是在发送 XML。

最新更新