2013-10-31 57 views
-1

我有一個服務器,其中運行我寫的一些代碼。不幸的是出現了一些問題,我不能在我的開發機器上輕鬆地重現它。MSVSMON over轉發的TCP連接

所以我想遠程調試它使用VS遠程調試器。這通常不是什麼大問題,但在這種情況下,我無法直接到達服務器,而只能通過第二個服務器。所以我試圖轉發一些端口(14016,因爲我不能直接使用4016)到目標機器的端口4016.

當我嘗試附加到在目標機器上運行的進程VS告訴我,遠程調試器似乎不在目標機器上運行。

我在使用Wireshark時看到的是,VS通過TCP發送一些包含以net.tcp://192.168.172.34:14016/Microsoft/VisualStudio/msvsmon形式的URI的數據。 192.168.172.34:14016是進行端口轉發的中間服務器的IP和端口。這是有道理的,因爲VS只知道這個服務器。

這個問題似乎是在MSVSMON檢查至少端口號或也許還有IP與http://schemas.microsoft.com/ws/2006/05/framing/faults/EndpointNotFound如可以在Wireshark的可以看到答案...

所以現在的問題是:是否有辦法通過轉發的TCP連接進行調試成爲可能?

回答

1

這對你來說可能已經太遲了。但它可能有助於谷歌的那裏:

這對我工作在類似的設置。我不知道某些功能是否被破壞,而我只是不知道。我可以使用斷點,單步執行和查看變量。對我來說夠多的了。

  • 將「127.0.0.1 remote-debug」添加到遠程計算機上的hosts file
  • 將「192.168.172.34 remote-debug」添加到開發機器上的主機文件中。
  • 用「/ hostname remote-debug」啓動msvsmon.exe。
  • 連接調試器「遠程調試:14016」

(以此爲基本的想法,你可能需要反覆折騰一點也許不使用「/主機名」在所有可能使用。網絡IP而不是「127.0.0.1」。)