【发布时间】:2013-02-21 20:07:21
【问题描述】:
我正在尝试访问在反向代理/重定向后面托管的 WCF 服务。 WCF 服务报告错误的schemaLocation,这取决于它实际上是从哪台机器提供服务的。例如,我得到这样的东西:
<wsdl:types>
<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import schemaLocation="http://badhost1.com/service.svc?xsd=xsd0" namespace="http://tempuri.org/"/>
<xsd:import schemaLocation="http://badhost1.com/service.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
</xsd:schema>
</wsdl:types>
现在,它不应该是http://badhost1.com,应该是http://goodhost.com。如果我将 xsd 指向 goodhost 版本,我可以在浏览器中打开它 - 显然 badhost 版本不起作用。
有没有办法用正确的端点替换这些坏端点?
【问题讨论】:
-
不久前我以一种骇人听闻的方式做到了这一点。我有一个代理脚本,可以读取本地 wsdl 文件并根据查询字符串替换 url。我也想看看更优雅的东西。
-
@jordanm,我想做同样的事情,比如使用 Flask。事实证明它更容易 - 看看我的自我回答!