C# WCF端点配置:第二个端点不';根本不起作用,第一个端点不起作用';似乎不受约束的影响
在IIS中托管的WCF服务中,我尝试设置多个端点。一个用于肥皂,一个用于肥皂12。根据,我编辑了C# WCF端点配置:第二个端点不';根本不起作用,第一个端点不起作用';似乎不受约束的影响,c#,wcf,wcf-binding,C#,Wcf,Wcf Binding,在IIS中托管的WCF服务中,我尝试设置多个端点。一个用于肥皂,一个用于肥皂12。根据,我编辑了Web.config如下: <services> <service name="MyNamespace.MyClass"> <endpoint address="" binding="basicHttpBinding" contract="IContract" /> <endpoint address="Endpoint2" binding
Web.config
如下:
<services>
<service name="MyNamespace.MyClass">
<endpoint address="" binding="basicHttpBinding" contract="IContract" />
<endpoint address="Endpoint2" binding="wsHttpBinding" contract="IContract" />
</service>
</services>
如果我将
IContract
更改为IContract2
,我会得到错误:
The service '/MyClass.svc' cannot be activated due to an exception during
compilation.
因此,我正在编辑的Web.config
就是正在使用的
将默认地址的绑定从basicHttpBinding
更改为wsHttpBinding
不会产生任何效果。WSDL保持不变
WSDL包含这一点,这似乎表明它正在使用生成的绑定运行:
<wsdl:service name="TapasSim">
<wsdl:port name="BasicHttpBinding_IContract"
binding="i0:BasicHttpBinding_IContract">
<soap:address location="http://localhost:51454/MyClass.svc"/>
</wsdl:port>
</wsdl:service>
为什么WCF服务不使用Web.config
中的配置?为什么WCF不使用SOAP12绑定侦听
/Endpoint2
为什么默认端点没有从
basicHttpBinding
更改为wsHttpBinding
?尝试添加端点的基本地址:
<service name="namespace.Service">
<host>
<baseAddresses>
<add baseAddress="http://localhost:51454/myclass.svc"/>
</baseAddresses>
</host>
//端点全方位
或者尝试在地址前添加斜杠:
endpoint address=“/Endpoint2”binding=“wsHttpBinding”contract=“IContract”MSDN文章是正确的,您的配置中没有任何错误。我使用VS创建了一个WCF客户端,并能够使用
http://localhost:51454/MyClass.svc/Endpoint2
显然,它并不是来自浏览器的有效url。尝试使用第二个url从客户端消费,它应该可以工作问题在于服务名称:
<service name="MyNamespace.MyClass">
类名错了。当您输入错误的合同界面时,WCF会抛出一个错误。但是错误的类名会被默默地忽略。这就解释了为什么它会回到默认配置。添加此选项根本没有效果,据我所知,配置文件位于错误的位置?我不知道IIS的正确位置,但我猜它必须靠近.dll文件。通常当我遇到此问题时,这就是原因。如果我将
IContract
更改为IContract 2
,服务将显示错误消息。所以我很确定它在正确的位置。公平。很好的测试。我还有最后一个猜测——检查答案。我试过了,没有效果。我已经用一个WDSL代码段更新了这个问题,您是如何使用svcutil还是使用VS.@dhawark:WCF在访问MyClass.svc?WSDL
时生成WSDL的?您可以使用svcutil生成WSDL吗?我使用VS创建服务引用,并且能够从客户端访问两个端点。。。没关系,我没看到你下面的答案:)@Dhawalk:是的,愚蠢的打字错误。谢谢你看!:)
<service name="MyNamespace.MyClass">