2012-03-07 245 views
2

我正在使用幾年前寫過的使用TCP的WCF服務。這導致我的問題,說:「...目標機器積極拒絕」我試圖連接到它。我不知道爲什麼目標機器(我們的Windows 2003服務器)現在應該積極拒絕我的連接,而上個星期它就是所有的人。我已經在MSDN論壇上發過帖,並被告知要運行一個名爲Wireshark的東西。我從來沒聽說過。 Wireshark有點像Fiddler,只包括HTTP以外的其他協議?什麼是Wireshark和WinPcap?

另一件事。我已經下載了Wireshark並開始安裝它。在安裝的早期,它告訴我它想更新一個名爲WinPcap的東西。我從來沒有聽說過這種情況。我已經做了另一個搜索,並在維基百科上找到,並看到它是PCAP的Windows版本,它代表數據包捕獲。據Wireshark的網站稱,目前我的系統上的任何WinPcap版本都是「......令人討厭的bug ......」,而WinPcap 4.1.2版本修復了這些bug。好吧,這很好,但是,坦誠地滿足Wireshark的需求並不是我在這裏要做的。我想知道替換WinPcap對我的系統會有什麼影響。還有什麼依賴於WinPcap?

回答

4

Wireshark是一個用於分析網絡流量的工具。 [Win] Pcap是提供該功能的依賴項,正如您發現的那樣。如果您有其他需要捕獲數據包的工具,則可能使用pcap。一般來說,有不應是使用PCAP任何系統上的其他人,但是我們沒有辦法知道什麼是您的系統上.....

使用Wireshark來診斷連接問題與您的應用程序通常是矯枉過正。我建議檢查你的應用程序是否正確地綁定到一個主機名和接口上,在你使用數據包捕獲之前,使用另一個工具如netstat等主動打開這個端口。

你可以嘗試像打開一個命令提示符窗口,並使用:netstat的 -p tcp的-a

你應該可以看到所有的TCP連接的計算機上的某個列表和打開的端口。如果你沒有看到你的應用程序應該打開的適當的端口(或一個奇怪的IP),那麼你知道你的應用程序有一些東西。您也可以檢查Windows防火牆並在需要時添加例外。

+0

我發出了你建議的netstat命令。它列出了使用TCP在我的機器上使用的不同IP地址和端口。但是,我沒有在我的電腦中指定我的機器上要使用哪個端口的任何內容。我在App.Config文件的binding部分指定了在服務器上使用哪個端口。 – Rod 2012-03-08 20:56:38

+0

您可以在服務器上使用相同的命令來驗證預期的端口是否打開並偵聽新的連接。如果它存在但仍無法連接,則需要檢查Windows防火牆和/或您的應用程序設置以進行IP /主機綁定。 如果它不存在,您需要驗證您的應用程序是否正常工作,具有正確的權限並正確打開端口。 – tamarintech 2012-03-09 16:01:11

+0

謝謝,esnyder,這是一個好主意。我剛剛在服務器上運行了netstat命令,它並不像我在監聽TCP端口9000一樣。我想看看服務器的服務(我的WCF服務必須作爲由Windows託管的應用程序來運行服務,我也寫過),並且該服務在那裏列出,但它不處於Started狀態。我試着開始它,但它不會啓動,或者它立即啓動並關閉,不應該這樣做。 Windows防火牆在服務器上關閉。 – Rod 2012-03-09 16:32:37