8

我们有一项服务,它的某些设置仅在 net.tcp 上受支持。添加另一个端点的最佳方法是什么?我需要创建一个全新的主机吗?

4

4 回答 4

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”值。

于 2008-09-08T21:30:47.847 回答
6

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

另请参阅 MSDN 文章Multiple Endpoints

于 2008-09-05T17:03:12.633 回答
0

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

于 2008-09-08T10:36:12.070 回答
0

我们可以为同一个服务使用多个端点。我们也可以通过以下方式配置 web config

 <service name="MessagePatternDemo.Service1">  
 <endpoint name="ep1" address="/ep1" binding="basicHttpBinding" 
   contract="MessagePatternDemo.IService1"/>  
 <endpoint name="ep2" address="/ep2" binding="wsHttpBinding"  
   contract="MessagePatternDemo.IService1" />  
 <endpoint name="mex" contract="IMetadataExchange" address="mex"  
   binding="mexHttpBinding" />  
 </service>   
于 2018-12-17T09:55:59.430 回答