ASP.NET Debugging Tips


這幾天幫忙解決了幾個VS.NET Debug上的小問題,特別拿出來分享一下:

1) 要Debug Localhost上的ASP.NET程式時,彈出一個跟Debugger Users群組有關的錯誤訊息,如下:

此時建議先檢查兩個地方: 1) IIS Web是否已停用匿名存取? 2) 測試時用的使用者是否為Debugger Users的成員?
這兩點都挺明顯的,並不難發現,比較煩的是第三種隱性的狀況,也就是其實與”Debugger Users”沒有關係,也並非真的權限不足,而是IE的自動登入沒有設妥。對第三種狀況來說,這個錯誤訊息”誤導”效果十足。
要檢查是否為自動登入問題,方法很簡單。先確認你的Debug StartPage URL,例如: http://localhost/myweb/test.aspx。接著在IE中輸入這個URL,此時若IE跳出來問Username/Password,就代表自動登入沒生效,也就是所謂第三種狀況。如果你確定已取消匿名存取,而且也開了整合式驗證,則可以看看是不是IE的進階設定被改了。如下圖:

2) 延伸以上的問題,若只能用自動登入啟動ASP.NET的Debug Mode,又要怎麼用其他身份登入做測試呢?
啟動Deugger後,它會咬住ASP.NET Web執行的Process(w3wp.exe on Windows 2003, aspnet_wp.exe on Windows 2000),此時該Process下的所有Web動作都受到監控,並不只限於VS.NET開出來的那個IE。了解了這個原理,大家應該想到解決方法了吧?
另開一個IE,用另一個身份連到同一Web就OK了! 甚至,我常常會留著這個IE開著,每次重新啟動Debugger後,再Refresh一次就可了囉!
歡迎推文分享:
Published 13 June 2006 07:57 PM 由 Jeffrey
Filed under: ,
Views: 10,308



意見

# ringman said on 03 June, 2009 07:16 PM

好怪啊~我照著作還是會出現錯誤耶~

我的環境是 VS2003 + WIN2003

Jeffrey 大大~我試著在IIS下建立專案的虛擬目錄發現是可以Debugger的;但是如果我自己在IIS建立一個站台,然後有

指定IP位指的進階網站識別(例:xxxx.myweb.com.tw),前提是xxxx.myweb.com.tw是有做用的,不過醬子在VS2003中..就不能Debug了~~錯誤訊息如同標題!!~

# Jeffrey said on 03 June, 2009 10:53 PM

to ringman, 不太明白,xxxx.yweb.com.tw就是你的VS.NET機器名? 還是遠端的另一台機器? 若是遠端機器,則該主機上面還要進行一些安裝及設定的步驟才可以支援遠端Debug。

# Sophia said on 12 April, 2010 09:26 AM

不太懂耶  如果ie已經設定自動login

不就是現在本機登入的使用者的身分嗎?

怎麼有辦法用另一個身分連到同一個web呢?

網頁還是會跳出windows認證的對話框嗎?

# Jeffrey said on 12 April, 2010 09:38 AM

to Sophia, 較常遇到的狀況是: User可能針對Local Intranet、Internet、Trusted Sites設定不同的自動登入原則。另外,想用另一身份連至同一個Web可以利用同一台機器的別名URL來產生區別。例如: 127.0.0.1, localhost, 對外IP, 機器名稱對IE來說,會產生四個不一樣的Session。:D

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<June 2006>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication