2013-04-23 161 views
8

我在32位Windows Server 2003計算機上安裝了Web服務。通過使我的機器上共享x86調試器exe可用,我可以通過VS 2010從我的Windows 7 64位機器遠程調試它。一切都很好,直到週末他們決定將服務器機器升級到64位。在x64上進行遠程調試Windows Server 2003

現在,當我嘗試遠程與x86調試器調試它給我的錯誤:

Remote Debugger

當我使用的x64調試器,它不會拋出一個錯誤,但它不會加載該項目的符號,所以我無法調試它。

任何想法,爲什麼這是?我應該做什麼不同?

+0

'不加載項目符號<< - 你是否進入了模塊窗口(在調試菜單下)來查看特定程序集的符號加載信息?它說什麼?此外,Web服務進程是以32位還是64位運行?作爲一個實驗,您可以嘗試(迫使)您的進程以32位運行,以查看遠程調試是否適用於此過程。 – wal 2013-05-03 13:08:43

+0

模塊窗口甚至不包括項目程序集。它只顯示了system32和GAC程序集......我試着在32位和64位上運行這個進程,並且遇到同樣的問題。 – anothershrubery 2013-05-03 13:36:36

+0

當運行進程爲32位時,我假設你已經過去了你發佈的最初的問題(對話框之一)。順便說一句,你附加到過程後實際發生了什麼?確保你打開了輸出窗口並檢查你的輸出設置('Tools - > Options - > Debugging - > Output Window') - 它可能表明它在哪裏翻倒。我猜想該機器上的框架版本的符號不能在符號服務器上使用。 – wal 2013-05-03 14:12:06

回答

1

不知道這是一個選擇,但你可以

  • 集VS產生一個x86的可執行文件(編譯選項,平臺目標86)
  • 或者如果你的Web服務運行在IIS ,創建運行的過程x86的

Go to Application Pools in the IIS Management Console, right click your application pool and select "Set Application Pool Defaults...". In the properties dialog, set "Enable 32 Bit Applications" to "True."

這樣,你應該能夠使用x86的調試器(因爲之前的工作)的應用程序池。


顯然你可以設置IIS 6到86模式運行:

%SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1 

事後還跑

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i 
+0

我已經構建了針對x86的服務,但「啓用32位應用程序」設置似乎在IIS7及更高版本中。 Windows Server 2003使用IIS6。不幸的是沒有喜悅 – anothershrubery 2013-05-09 07:57:53

0

請確保你正在做如下因素

  • - 確保您擁有在UPTODATE符號與你的服務器

  • -run的msvsmon.exe

  • 64位版本-on視覺工作室您的客戶端,調試上可執行 - 重視過程 - 運輸(遠程)預選賽(您服務器)

  • - 選擇過程中,打附加

你必須有可執行文件和符號上的服務器和客戶端的版本相同

相關問題