我正在構建一個使用WCF調用多個外部端點的應用程序。除URI之外,所有遠程端點都是相同的。我想將它們視爲一個池:通過配置添加和刪除端點,並讓應用程序理解要執行的操作。爲同一服務管理多個WCF端點
我原來的計劃是在app.config中定義一個結點,然後遍歷我的端點列表並更新client.Endpoint.Address以便指向正確的位置。不幸的是,該屬性是隻讀的,導致該計劃不可行。
我在這裏有點難住。有關我如何完成此任務的任何建議?
我正在構建一個使用WCF調用多個外部端點的應用程序。除URI之外,所有遠程端點都是相同的。我想將它們視爲一個池:通過配置添加和刪除端點,並讓應用程序理解要執行的操作。爲同一服務管理多個WCF端點
我原來的計劃是在app.config中定義一個結點,然後遍歷我的端點列表並更新client.Endpoint.Address以便指向正確的位置。不幸的是,該屬性是隻讀的,導致該計劃不可行。
我在這裏有點難住。有關我如何完成此任務的任何建議?
How to: Create a Service Endpoint in Code向您展示瞭如何在代碼而不是配置中管理服務端點。
您是否嘗試過一個單獨的名稱傳入客戶端構造函數?
<endpoint address="http://localhost:18000/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="MyServiceReference.IMyService" name="BasicHttpBinding_IMyService" />
<endpoint address="http://localhost:18001/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="MyServiceReference.IMyService" name="MyService_Secondary" />
<endpoint address="http://localhost:18002/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="MyServiceReference.IMyService" name="MyService_Tertiary" />
將終點地址存儲在數據庫表中,並使用Jason的建議在代碼中創建終點。當新端點出現時,只需向表中添加另一行並強制服務重新查詢端點表。
如何:在代碼 http://msdn.microsoft.com/en-us/library/ms731080.aspx
創建服務端點我也認爲,這是我的備用位置,但似乎每一次我的另一臺服務器添加到池時需要更改代碼。 – Jacob 2010-04-13 20:03:28