首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改我的wsdl的地址位置

如何更改我的wsdl的地址位置
EN

Stack Overflow用户
提问于 2009-11-04 02:52:02
回答 4查看 17.8K关注 0票数 3

我的wsdl把一个错误的域名放在地址位置,如何修复它?

代码语言:javascript
复制
- <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>

真正的域类似于https://machine.goodDomain.com.br

EN

回答 4

Stack Overflow用户

发布于 2009-11-04 04:37:50

该地址取自用于访问WSDL的URL。如果它与您实际提供服务的服务器不同,那么您可以通过创建一个扩展SoapExtensionReflector的类来更改它。下面是一篇关于如何更改URL的示例文章:

http://blogs.msdn.com/kaevans/archive/2005/11/16/493496.aspx

票数 4
EN

Stack Overflow用户

发布于 2015-08-06 00:21:04

另一种选择是使用IIS重写模块(http://www.iis.net/downloads/microsoft/url-rewrite)

首先捕获来自XWebService.asmx?WSDL的输出,并将其保存为一个超文本标记语言文件(例如wsdl.htm)。

编辑此文件并将位置更改为备用地址

..。来自thishost.domain.com

代码语言:javascript
复制
- <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost">
  <http:address location="http://thishost.domain.com/XWebService.asmx" /> 
  </wsdl:port>

...to thathost.domain.com

代码语言:javascript
复制
- <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:

代码语言:javascript
复制
(.*)XWebservice.asmx

对于条件match {QUERY_STRING} to WSDL{REQUEST_METHOD} to GET

对于重写操作-将其设置为(因此这对客户端是透明的),并选择我们之前保存的文件(wsdl.htm)。

这还会向web.config的system.webServer部分添加一个新的重写部分

代码语言:javascript
复制
<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>
票数 2
EN

Stack Overflow用户

发布于 2011-02-10 04:53:07

为什么不直接手动编辑WSDL文件中的地址呢?

如果WSDL是由其他工具生成的,那么让我们知道它是如何生成的,也许我们可以提供帮助。否则,没有法律禁止修改生成的文件以满足您的需要。如果原始用户环境的WSDL的所有错误都是URL错误,那么直接修改URL是完全合法的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1669403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档