Dot-Net

一個服務可以有多個端點嗎?

  • December 17, 2018

我們有一項服務,它的某些設置僅在 net.tcp 上受支持。添加另一個端點的最佳方法是什麼?我需要創建一個全新的主機嗎?

一個服務在單個主機中可能有多個端點,但每個端點都必須具有地址、綁定和契約的唯一組合。對於 IIS 託管服務(即 .SVC 文件),只需將終結點的地址設置為相對URI,並確保您的 Visual Studio 或 wsdl.exe 生成的客戶端在其建構子中指定終結點的名稱。

另請參閱 MSDN 文章*Multiple Endpoints*。

您可以在伺服器或客戶端上定義多個端點。

要在客戶端上執行此操作,您只需使用具有不同名稱的新端點編輯 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”值。

引用自:https://stackoverflow.com/questions/46283