2012-12-21 266 views
7

在遠程生成機器上,運行我的單元測試時出現以下錯誤。無法連接到net.tcp:連接嘗試持續一段時間

試驗方法MyNameSpace1.MyNameSpace2.Service.Test.MyPath.XYZServiceTest.FindRecord拋出異常: System.ServiceModel.EndpointNotFoundException:無法連接到的net.tcp://localhost/MyABCServices/XYZService.svc。連接嘗試持續時間爲00:00:02.0086605。 TCP錯誤代碼10061:由於目標機器主動拒絕127.0.0.1:808,因此無法建立連接。 ---> System.Net.Sockets.SocketException:由於目標機器主動拒絕它,因此無法建立連接127.0.0.1:808

我對此構建機的訪問非常有限。我無法在構建機器上訪問iis,也無法訪問我在本地開發機器上執行的服務。單元測試工作在我的本地開發機器上,但是它們在構建機器時遇到上述錯誤。

我能做些什麼來調試這個錯誤?我已經閱讀過像檢查防火牆等東西,但我不知道該怎麼做?我無法檢查此服務的Windows服務是否已啓動並正在生成計算機上運行。我試圖登錄到生成機器或連接我的IIS到這臺遠程機器,但我不能。

+5

許多人會說,如果一個單元測試訪問網絡或數據庫,那麼它不是一個單元測試。 –

+0

這確實不是一個單元測試,而是一個系統測試,但這正是大多數人都在尋找的東西,儘管人們應該都是這樣做的。儘管如此,系統測試比沒有測試要好。 – Jonast92

回答

8

對我來說,最常見的問題是Windows Service Net.Tcp Listener Adapter沒有在主機上運行。

還要檢查您的IIS Web應用程序以確保啓用的協議包含net.tcp。例如,我的「http,net.tcp」,並在我的綁定我有「http::94 :, net.tcp:194:

我不知道任何好方法來遠程檢查IIS配置正確或Windows服務正在運行。你沒有可以爲你看這些值的服務器管理員嗎?

2

127.0.0.1:808實際IP:端口報錯?如果是這樣,那麼你需要修復IP(127.0.0.1localhost同義,所以這將是你的本地計算機)。

否則,這看起來像是防火牆問題。

有防火牆的兩種常見來源:

  • 路由器
  • OS

路由器的防火牆通常將內部網絡連接到互聯網路由器上找到。在這些情況下,您(或具有訪問權的人)將需要登錄到路由器並將該端口轉發給機器的IP。這隻在兩臺試圖通信的計算機不在同一內部網絡上時才需要。
例如,如果您的計算機通過互聯網連接到服務器,則需要設置端口轉發。如果兩臺計算機在同一個辦公室的同一個網絡上,則不需要端口轉發(這種情況在大型公司很常見,但後來有IT或網絡人員來處理端口問題)。

假設您的服務器正在運行Windows,您需要具有Admin(?)訪問權限的用戶才能登錄並打開該端口或允許您的服務接受傳入的請求。由於您表示您無法訪問服務器,因此我建議讓負責服務器的人員驗證配置。

+0

WCF服務在構建機器上運行,並且單元測試的行爲就像該服務的客戶端一樣。他們都在同一臺機器上。有一個端口阻止來自單元測試的服務請求?在同一臺機器內?我會問管理員什麼樣的問題?謝謝您的幫助。 –

+0

當我在本地開發機器上的IIS上設置服務時,我根本沒有遇到防火牆問題?我想知道構建機器管理員如何/在哪裏設置了可能影響此單元測試以連接服務的這些設置。 –

+0

@ dotnet-practitioner如果服務器和客戶端程序都在同一臺機器上運行,那麼它可能不是防火牆問題。我無法提供更多幫助,Erik Noren的答案可能是一個很好的開始。其他選項是訪問服務器並檢查相關設置。既然你不能直接訪問服務器,下一個最好的選擇就是設置一個你可以直接訪問的測試服務器,並設置它在那裏運行。 – Trisped

1

當我讀到它時,「單元測試」顯然期望在某個本地主機地址處有一個WCF net.tcp端點。因此,對於工作,你既可以

  • 添加在構建服務器所需的服務,這可能是一個共享服務器,或擁有其他團隊,或者一些其他的問題,我並不瞭解,或
  • 更改單元測試,以便它不會期望真正的實時WCF服務,而是一個嘲弄或僞造的服務。

我(顯然)建議第二個選擇。

6

Starting the Net.Tcp Listener Adapter service has fixed the problem.

啓動的net.tcp偵聽器適配器服務已經解決了這一問題。

+1

太棒了!救了我!你是最棒的! –

+0

你是最棒的,謝謝分享!我以爲我瘋了。 –

相關問題