我是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>
我是怎么做到的?有人可以给我一个简单的解决方案吗?
答案 0 :(得分:4)
我找到了设置端口名称的解决方案。
像这样:<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端口名称将是我想要的。
答案 1 :(得分:0)
我将此属性添加到服务实现中,从而解决了我的问题:
[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>