越過調(diào)試這道檻——ASP.NET無法調(diào)試問題剖析
發(fā)表時間:2023-08-09 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]越過調(diào)試這道檻——ASP.NET無法調(diào)試問題剖析 使用VS.NET的朋友可能經(jīng)常會遇到無法調(diào)試ASP.NET的情況,有些朋友給出了一些可行的解決方案。初步總結(jié)一下,大體包括以下幾個方面(...
越過調(diào)試這道檻
——ASP.NET無法調(diào)試問題剖析
使用VS.NET的朋友可能經(jīng)常會遇到無法調(diào)試ASP.NET的情況,有些朋友給出了一些可行的解決方案。初步總結(jié)一下,大體包括以下幾個方面(請注意:這兒討論的都是關(guān)于本地調(diào)試的解決方案):
- 確定當(dāng)前用戶是否已經(jīng)被加入到Debugger Users組
- 確定當(dāng)前用戶是否具有Administrator權(quán)限
- Web Application項目屬性中“允許調(diào)試ASP.NET”屬性是否被設(shè)為了True。也可以通過修改Web.config文件的compilation元素的debug屬性為True來實現(xiàn)。
需要說明的是,本地調(diào)試ASP.NET應(yīng)用程序需要的操作系統(tǒng)是Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows XP Professional 和 Windows Server 2003。也就是說,我們無法在Windows XP Home,WindowsMe 和 Windows98上進行調(diào)試工作。(廢話?)
一般情況下,按照上述的一些解決方案基本上就可以使用我們運行ASP.NET的調(diào)試工作了。實在有問題,通過嘗試使用.Net自帶的ASPNET_REGIIS.EXE重新配置一下IIS,應(yīng)該就可以了。
不過,本文希望和大家討論一下,如何在沒有本機Administrator權(quán)限下進行ASP.NET的調(diào)試。初聽起來,是不是覺得沒有必要呀?但如果大家仔細想一想,就會認識到這樣做的必要性的。原因很簡單,在大多數(shù)管理比較正規(guī)的軟件公司,開發(fā)人員一般是不會被授予本機Administrator權(quán)限的,那么如何在沒有本機Administrator權(quán)限的情況下調(diào)試ASP.NET應(yīng)用程序就成了首先需要解決的問題了。為此我查閱一些資料(主要是MSDN online),并從中總結(jié)出了一套可行的解決方案,希望與大家共享之。測試環(huán)境:Windows XP Professional SP1, Vistual Studio .Net 2002.
首先,將當(dāng)前登錄的用戶加入到Debugger Users組中(此外,此用戶至少要屬于Users組。絕大多數(shù)情況下,開發(fā)人員會被授予Power Users權(quán)限)。順便說一下,如果希望此用戶可以維護Web虛擬目錄,則需要將此用戶添加到VS Developers組。當(dāng)然,這與能否調(diào)試ASP.NET應(yīng)用程序無關(guān)。
接著,根據(jù)微軟的說法,如果此用戶希望在Windows XP Professional下調(diào)試ASP.NET應(yīng)用程序,還需要將此用戶加入到“作為批處理作業(yè)登錄”策略中(當(dāng)然,支持調(diào)試ASP.NET的其它版本W(wǎng)indows不需要做此設(shè)置),這樣就可以進行調(diào)試了?梢栽凇翱刂泼姘->管理工具->本地安全設(shè)置”工具的“安全設(shè)置->本地策略->用戶權(quán)利指派->作為批處理作業(yè)登錄”部分加入此用戶。不幸的是,結(jié)果并不象微軟相關(guān)文檔所說的那樣,設(shè)置了這些后就可以進行調(diào)試。經(jīng)過一段時間的研究,我從MSDN Online的一篇文章中找到了答案。相信大家都知道,在默認情況下,ASPNET_WP.EXE進程是以Web Server方式運行,其用戶名是ASPNET。在這種情況下,如何我們想對Web Application進行調(diào)試,就必須擁有本機Administrator權(quán)限。這就為什么我們至今還不能進行調(diào)試的原因。那到底該如何解決這個問題呢?.Net為ASP.NET用戶提供了另一種解決方案,我們可以讓ASPNET_WP.EXE以工作進程的方式運行在指定用戶下,此時,指定用戶只要是屬于Debugger Users組就可以對它進行調(diào)試了。終于看到勝利的曙光了。
那么,如何使ASPNET_WP.EXE運行在指定用戶帳號下呢?答案是,對machine.config文件的相關(guān)配置項進行配置就行了。以VS.NET2002為例,此文件位于C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\CONFIG中。我們要做的是,找到processModel配置項,修改userName和password屬性。注意,如果使用的是域用戶,請?zhí)钊?lt;domain>\username。然后,找到Temporary ASP.NET Files Properties目錄,此目錄與CONFIG目錄位于同一目錄下。在右鍵呼出的彈出菜單中選擇“屬性->安全->高級”,此時將彈出“Temporary ASP.NET Files Properties的高級安全設(shè)置”對話框。在“權(quán)限”標簽中,點擊“添加”按鈕將指定用戶添加下“權(quán)限項目”列表中。重啟計算機,大功告成。注意:上述操作需要有本機Administrator權(quán)限,這需要系統(tǒng)管理員予以支持。
感覺上,應(yīng)該還是比較容易進行配置的。若有什么不足之處,請各位多多指教。