簡體   English   中英

如何將調試器附加到IIS而不是ASP.NET Development Server?

[英]How do I attach the debugger to IIS instead of ASP.NET Development Server?

我有一個ASP.NET網站,當我按F5鍵時,它會自動附加到ASP.NET開發服務器上,當我按F5鍵時,如何附加到IIS工作進程?

調試->附加到處理...

從列表中選擇aspnet_wp.exe進程。

如果您正在運行IIS>版本5,則該過程將為w3wp.exe ,並且每個應用程序池都有一個(因此,如果您不知道要擊中哪個應用程序池,則需要將其附加到所有其中)。

打開項目屬性,轉到Web選項卡,然后為IIS選擇選項。

實際上,這將在IIS中啟動該應用程序的實例並附加調試器。 如果只想附加到現有的IIS實例,請從調試菜單中選擇“附加到進程”。

從VS菜單中的Debug-> Attach to Process。

為了知道要附加到哪個w3wp.exe進程,您可以在2008服務器上使用以下命令

c:\%systemroot%\system32\inetsrv\appcmd list wp

在Windows 2003上是

c:\%systemroot%\system32\cscript iisapp.vbs

有關更多信息,請參見IIS應用程序池PID

但是,如果可以訪問任務管理器(taskmgr.exe),則可以直接在其中看到進程名稱以及進程ID,並且在大多數情況下,該進程的“用戶名”列將與應用程序相同。池名稱,(當然,您必須將這些列設置為在任務管理器中可見,以便查看信息)。

但是請注意,所有方法將僅顯示當前正在運行的進程,這意味着,如果您的特定進程由於空閑時間而關閉,則必須首先使用該站點才能在列表中顯示該進程。

同樣,如果該應用程序是“ Web Garden”(具有多個w3wp.exe),則即使附加到正確的進程之后,也仍然無法保證會遇到斷點,因為到該站點的流量可能會定向到另一個站點。處理。

還要注意,如果您附加到在發布模式下運行的應用程序,則現在它將改為在調試模式下運行,這意味着,例如,將沒有超時限制(如果您實際上嘗試執行以下操作,可能會出現問題:解決超時錯誤)。


如果要附加到遠程進程,這里是最佳做法:

  1. 通過打開相關端口或完全禁用防火牆來確保防火牆沒有被阻塞(記住完成后再次將其打開)。
  2. 您應該在遠程計算機上具有Windows域帳戶,該帳戶在遠程計算機上具有管理特權,或者在遠程計算機上具有與運行VS的本地計算機相同的用戶名和密碼的帳戶。
  3. 在已安裝VS的計算機上,導航至(Visual Studio安裝路徑)\\ Microsoft Visual Studio(當前版本號)\\ Common7 \\ IDE \\ Remote Debugger(遠程計算機版本),然后將此文件夾復制並粘貼到遠程計算機或共享該文件夾文件夾,以便可以從遠程計算機訪問它。
  4. 在遠程計算機上,以與本地計算機相同的用戶身份登錄(請參閱步驟2),從那里導航到步驟3的復制或共享文件夾,然后右鍵單擊“ msvsmon.exe”,然后從上下文菜單中選擇“運行方式”管理員”。
  5. 遠程監視器應該啟動,並聲稱它通常使用(用戶)@(遠程計算機)或任何其他名稱來啟動服務器。
  6. 在VS中,從菜單中選擇Debug-> Attach To Process,將傳輸保留在“ Default”上,並為“ Qualifier Name”輸入步驟5中的名稱。
    如果一切正常,將顯示遠程計算機上的進程列表。

當然,這個主題還有很多,並且對於調試本機代碼而言,該過程可能甚至更簡單,但是我在這里列出的步驟在每種情況下都應該起作用。

有關更多信息,請訪問http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx或MSDN上的內容,以及該站點上的許多帖子。

希望這會有所幫助。

或者,您可以使用“附加到IIS的 Visual Studio 插件”之一

我首選的擴展是VSCommands(適用於VS 2010-20122013 ,但不適用於2015)或ReAttach (適用於2017)。

轉到Web應用程序的屬性。 選擇“啟動選項”部分,然后從“使用默認Web服務器”更改為“使用自定義服務器”。 在基本網址中輸入“ http:// localhost ”。

(假設是VS 2008)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM