我的wsdl把一个错误的域名放在地址位置,如何修复它?
- <wsdl:service name="XWebService">
- <wsdl:port name="XServiceSoap" binding="tns:XWebServiceSoap">
<soap:address location="https://machine.wrongdomain.com.br/webservices/MapleStoryWebService.asmx" />
</wsdl:port>
- <wsdl:port name="XWebServiceSoap12" binding="tns:XWebServiceSoap12">
<soap12:address location="https://machine.wrongdomain.com.br/webservices/XWebService.asmx" />
</wsdl:port>
- <wsdl:port name="XWebServiceHttpGet" binding="tns:XWebServiceHttpGet">
<http:address location="https://machine.wrongdomain.com.br/webservices/MapleStoryWebService.asmx" />
</wsdl:port>
- <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost">
<http:address location="https://machine.wrongdomain.com.br/webservices/XWebService.asmx" />
</wsdl:port>
</wsdl:service>发布于 2009-11-04 04:37:50
该地址取自用于访问WSDL的URL。如果它与您实际提供服务的服务器不同,那么您可以通过创建一个扩展SoapExtensionReflector的类来更改它。下面是一篇关于如何更改URL的示例文章:
http://blogs.msdn.com/kaevans/archive/2005/11/16/493496.aspx
发布于 2015-08-06 00:21:04
另一种选择是使用IIS重写模块(http://www.iis.net/downloads/microsoft/url-rewrite)
首先捕获来自XWebService.asmx?WSDL的输出,并将其保存为一个超文本标记语言文件(例如wsdl.htm)。
编辑此文件并将位置更改为备用地址
..。来自thishost.domain.com
- <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost">
<http:address location="http://thishost.domain.com/XWebService.asmx" />
</wsdl:port>...to thathost.domain.com
- <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost">
<http:address location="http://thathost.domain.com/XWebService.asmx" />
</wsdl:port>在IIS中-在网站/虚拟功能视图中找到URL重写图标。然后单击Add Rule(s)并选择Inbound Rule -空白规则。
使用规则对其进行适当的命名,并为将接收WSDL请求的set服务URL设置模式匹配。对于RegEx:
(.*)XWebservice.asmx对于条件match {QUERY_STRING} to WSDL和{REQUEST_METHOD} to GET。
对于重写操作-将其设置为(因此这对客户端是透明的),并选择我们之前保存的文件(wsdl.htm)。
这还会向web.config的system.webServer部分添加一个新的重写部分
<system.webServer>
<rewrite>
<rules>
<rule name="WSDL Rewrite" stopProcessing="true">
<match url="(.*)XWebService.asmx" />
<conditions>
<add input="{QUERY_STRING}" pattern="WSDL" />
<add input="{REQUEST_METHOD}" pattern="GET" />
</conditions>
<action type="Rewrite" url="wsdl.htm" />
</rule>
</rules>
</rewrite>
</system.webServer>发布于 2011-02-10 04:53:07
为什么不直接手动编辑WSDL文件中的地址呢?
如果WSDL是由其他工具生成的,那么让我们知道它是如何生成的,也许我们可以提供帮助。否则,没有法律禁止修改生成的文件以满足您的需要。如果原始用户环境的WSDL的所有错误都是URL错误,那么直接修改URL是完全合法的。
https://stackoverflow.com/questions/1669403
复制相似问题