【问题标题】:How do I change wcf port name and binding?如何更改 wcf 端口名称和绑定?
【发布时间】:2015-03-03 05:55:26
【问题描述】:

我是 WCF 的新手。我正在尝试从客户端提供的 wsdl 创建 Web 服务; 我无法更改一些 wcf 生成的 wsdl 条目以匹配提供的 wsdl。

这是我的 wsdl 端口名称:

<wsdl:service name="MyService">
<wsdl:port name="BasicHttpBinding_IService" binding="i0:BasicHttpBinding_IService">
<soap:address location="http://localhost:53336/MyServiceApi.svc"/>
</wsdl:port>
</wsdl:service>

但我需要改变

<wsdl:service name="MyServiceSoap">
<wsdl:port name="MyServiceSoap" binding="m:MyServiceSoap">
<soap:address location="http://localhost:53336/MyServiceApi.svc"/>
</wsdl:port>
</wsdl:service>

我该怎么做?有人可以告诉我一个简单的解决方案吗?

【问题讨论】:

    标签: wcf soap wsdl


    【解决方案1】:

    我找到了设置端口名称的解决方案。

    像这样:

    <services>
      <service name="MyServiceSoap">
        <endpoint name="MyServiceSoap" address="" binding="basicHttpBinding" contract="IService" bindingNamespace="MyServiceSoap" bindingName="MyServiceSoap" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    

    那么 wsdl 端口名称就是我想要的。

    【讨论】:

      【解决方案2】:

      我将此属性添加到我的服务实现中并解决了我的问题:

      [ServiceBehavior(Name = "MyServiceName")]
      public class MyServiceClass : IServiceContract
      {
        // implementation code
      }
      

      生成的 WSDL:

      <wsdl:service name="MyServiceName">
        <wsdl:port name="MyServiceClass" binding="tns:MyServiceClass">
          <soap:address location="http://localhost:52233/MyService.svc"/>
        </wsdl:port>
      </wsdl:service>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 2020-04-12
        • 2014-08-31
        • 1970-01-01
        • 2019-09-28
        相关资源
        最近更新 更多