2010-10-14 65 views

回答

0

總之,你可以簡單地通過配置來完成!

Have you seen this tutorial? Do check this out

它是一個很好的教程,帶有使用Microsoft Service Configuration Editor配置具有多個端點的示例服務的整個基本過程的屏幕圖像。

+1

鏈接已死...... – Vaccano 2012-11-02 21:36:48

+1

是的。鏈接已死。即使ti在鏈接中表示相同的內容,實際的完整響應總是更好。 – 2012-12-07 10:56:27

+0

@Vaccano/Coral - 更新了鏈接。雖然我通常會傾向於贊同珊瑚關於發佈內容的評論,但在這種情況下,我發現它有點太長,並且有很多一步一步的截圖 - 所以我不認爲它們有什麼好的方法可以做到簡潔方式。因此,鏈接。 – InSane 2012-12-08 13:29:28

12

這都是配置的事情 ​​- 當你定義你的服務時,你只需要去定義兩個端點 - 一個用於wsHttpBinding,另一個用於netTcpBinding。就這麼簡單!

<system.serviceModel> 
    <services> 
     <service name="YourNamespace.MyService"> 
     <endpoint 
      address="ws" 
      binding="wsHttpBinding" 
      contract="YourNamespace.IMyService" /> 
     <endpoint 
      address="net.tcp://localhost:8787/MyService" 
      binding="netTcpBinding" 
      contract="YourNamespace.IMyService" /> 
     <host> 
      <baseAddresses> 
       <add baseAddress="http://localhost:8282/" /> 
      </baseAddresses> 
     </host> 
    </service> 
    </services> 
</system.serviceModel> 

現在,你有你的服務暴露兩個端點:

  • 一個使用使用wsHttpBindinghttp://localhost:8282/ws
  • 一個netTcpBindingtcp://localhost:8787/MyService

兩個端點相同的服務,對於相同的服務合同,例如提供相同的功能和服務方法。

在WCF每個服務端點必須定義WCF的ABC:

  • [A] ddress - 哪裏可以在服務到達/叫什麼名字?
  • [B]插入 - 如何調用服務(協議,設置,安全等)?
  • [C] ontract - 服務在這個地址提供什麼,什麼方法暴露?
+1

你也可以爲nettcp指定一個基地址,只是爲了保持一致性。 – 2010-10-14 10:40:37

+1

@Johann Blais:是的,你完全可以這麼做 - 這完全取決於你。我只想顯示這兩種方法 - 帶有基地址(http),並且不在標籤中指定明確的完整地址。 – 2010-10-14 11:56:31

+0

我試過這個,但是當我訪問http:// localhost:8282/ws時,我得到一個HTTP 404 - 找不到文件錯誤。還有其他需要嗎? – 2012-12-07 12:36:29

相關問題