2010-07-23 71 views
3

好的,我會盡量使它儘可能簡單。我在VS2010中使用VB.Net,我試圖自主託管一個WCF服務。 (它實際上是在一個Windows服務中,但我試圖通過一個簡單的控制檯應用程序來做到這一點,下面是有問題的代碼,TCP/IP地址直接注入到這裏,WCF服務本身只是一個重命名的DEFAULT新的WCF服務項目。WCF沒有綁定到TCP端口(通過netstat -a進行檢查)

Dim host As New ServiceHost(GetType(TestService)) 

Dim tcpb As New NetTcpBinding() 
tcpb.PortSharingEnabled = True 
host.AddServiceEndpoint(_ 
    GetType(ITestService), _ 
    tcpb, _ 
    "net.tcp://localhost:62020/TestWcfService/" _ 
) 

host.Open() 

Console.ReadKey(True) 

host.Close()

我不認爲我可以讓這個更簡單..有一些特別的東西,我需要做的就是以實際綁定端口?當我運行netstat -a它並不顯示一個監聽端口在62020我真的在我的白嘴鴉結束於此

背景:我有另一個WCF服務,我試圖遷移出IIS,並進入一個單獨的服務器運行在Windows服務。可以在內部訪問。我在遷移過程中遇到了很多問題,所以試圖獲得簡單的綁定服務,並讓客戶端(網站)訪問它。其他WCF綁定(不同的端口)罰款,但有通信錯誤。這裏有一大堆東西,很少能滿足我的需求,而且我在處理任何事情方面遇到了很多麻煩。

回答

2

我在測試新服務時遇到了完全相同的問題。事實證明,我忘了用[ServiceContract]屬性標記服務接口。我想WCF沒有打擾創建一個端點,因爲沒有找到服務合同。

因爲我無法想象任何人想要在沒有至少一個合同的情況下打開ServiceHost,但我懷疑只有當您在.NET 4中使用簡化配置時纔會發生此錯誤消息。

+0

不...接口指定 ...:/好點。 – Tracker1 2010-07-23 20:21:59

+0

原來是一個類似的問題...繞了一圈,並添加端點uri分開適當的綁定...這是目前在代碼中完成,但將調整使用基於配置的設置(服務/客戶端設置)...客戶端代理仍然會被編碼,因爲後端將在多臺機器上運行(取決於用戶/會話)。 – Tracker1 2010-08-04 20:33:34