如何更改 wcf 端口名称和绑定?
How do I change wcf port name and binding?
我是 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>
我该怎么做?有人可以告诉我一个简单的解决方案吗?
我找到了设置端口名称的解决方案。
像这样:
<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端口名称就是我想要的。
我将此属性添加到我的服务实现中,这解决了我的问题:
[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>
我是 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>
我该怎么做?有人可以告诉我一个简单的解决方案吗?
我找到了设置端口名称的解决方案。
像这样:
<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端口名称就是我想要的。
我将此属性添加到我的服务实现中,这解决了我的问题:
[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>