WCF物理地址如何進行正確設定
WCF中有一種叫做地址的應用技術。通過學習我們知道,WCF地址包括兩種,一種為邏輯地址而另一種就是我們今天要為大家重點介紹的WCF物理地址。希望朋友們可以從中獲得一些幫助。
設定WCF物理地址
前面我們輸出的結果邏輯地址和物理地址是相同的,我們可以通過代碼或者配置文件來設定終結點的物理地址。
- WSHttpBinding wsbinding = new WSHttpBinding();
- calculatorServiceHost.AddServiceEndpoint(
- typeof(ICalculator),
- wsbinding,
- "urn:calcservice", // 邏輯地址
- new Uri("http://localhost:8887/CalculatorService") // 物理地址
- );
又或者通過配置文件來設置ListenUri,如下代碼所示:
- < endpoint address="urn:calcservice"
- binding ="wsHttpBinding"
- contract="TerryLee.WCFAddressing.Contract.ICalculator"
- listenUri="http://localhost:8887/CalculatorService"
- bindingConfiguration="securityBinding">
- < /endpoint>
這里我們只需要注意的是在指定物理地址時,仍然可以使用相對地址,這一點與設置邏輯地址時是一樣的。 #t#
WCF物理地址模式
了解了物理地址和邏輯地址之間的關系,我們再看一下在設置監(jiān)聽地址時的兩種模式,通過ListenUriMode枚舉來指定,它定義了兩個枚舉值:
Explicit:完全原樣使用 ListenUri,默認值。
Unique:指定傳輸是否應使用特定傳輸機制,以確保 ListenUri 是***的
根據傳輸所采用的協議不同,WCF會采用不同的策略來保證ListenUri***,具體的策略如下所示:
1.非TCP傳輸,在ListenUri的末尾附加一個GUID。
2.對于獨占模式下的 TCP(PortSharingEnabled 為 false),綁定到一個***可用端口號。
3.對于端口共享模式下的 TCP(PortSharingEnabled 為 true),在ListenUri的末尾附加一個GUID。