2008-09-05 100 views

回答

6

服务可能在单个主机中有多个端点,但每个端点都必须具有地址,绑定和合同的唯一组合。对于IIS托管的服务(即.SVC文件),只需将端点地址设置为相对 URI并确保您的Visual Studio或wsdl.exe生成的客户端在其构造函数中指定了端点的名称。

另请参阅MSDN文章Multiple Endpoints

0

如果您当前使用IIS作为主机,则需要创建一个新的主机 - IIS只支持HTTP而不支持TCP绑定。但是,如果您使用的是WAS或Windows服务,那么您只需创建一个新的net.tcp端点即可脱身。

+1

我认为II7确实支持非HTTP绑定(即TCP)。 – 2010-08-30 09:52:19

9

您可以在服务器或客户端上定义多个端点。

要做到这一点在客户端上,你只需要与一个不同名称的新端点编辑您的app.config文件,那么当你创建新的客户定义。

例如,如果你有喜欢你的客户端应用程序的端点:

<endpoint address="https://yourdomain.com/WCF/YourService.svc" 
     binding="basicHttpBinding" 
     bindingConfiguration="BasicHttpBinding_IYourService" 
     contract="MessagingService.IYourService" 
     name="BasicHttpBinding_IYourService" /> 

你调用由:

YourServiceClient client = new YourServiceClient(); 

您可以用新的名称添加一个新的端点

<endpoint address="https://yourotherdomain.com/WCF/YourService.svc" 
     binding="basicHttpBinding" 
     bindingConfiguration="BasicHttpBinding_IYourService" 
     contract="MessagingService.IYourService" 
     name="BasicHttpBinding_IYourService_ENDPOINT2" /> 

你可以打电话给:

YourServiceClient client = new YourServiceClient("BasicHttpBinding_IYourService_ENDPOINT2"); 

我只是改变了上述域名,但如果你犯了一个新的绑定配置部分,你可以只改变“bindingConfiguration”值。

相关问题