2010-04-20 88 views
6

Web配置中的debug = true,並且該項目是一個調試版本,並且pdb文件存在於bin目錄中,但是當我的堆棧跟蹤中沒有行號時拋出異常。儘管pdb存在,IIS沒有給出堆棧跟蹤中的行號

適用於本地IIS/Cassini,但不適用於我們測試的IIS服務器。有沒有一些明顯的設置可能會丟失?

回答

8

原來使用模擬與web.config中:

<identity impersonate="true" /> 

引起堆棧跟蹤的行號的損失。我拿出條目並將行號返回,放回原處並在幾個小時後(Kerberos票證刷新?)行號再次消失。

不知道爲什麼冒充影響堆棧跟蹤,但它不 - 會很高興有人確認/解釋這個...

+0

其他人注意到它在此主題的最後一篇文章中,但沒有給出解釋: http://channel9.msdn.com/forums/TechOff/257195-Getting-line-number-in-Exception-for-ASPNET/ – Graeme 2010-04-22 08:55:43

+0

謝謝Graeme,謝謝,謝謝,謝謝。我花了8個多小時試圖解決同樣的問題,並嘗試了所有我能想到的,以及我無法想到的一切,這就是解決方案。我需要模仿我的一些網站,但這些網站有行號。由於一個未知的原因,這個特定的網站沒有行號,並關閉模擬它在本地web.config解決了這個問題。謝謝!!! – 2010-12-03 16:53:28

+0

這裏只是有同樣的問題。我猜想發生了什麼事情是,當加載DLL時,線程以標準的ASP.Net身份運行,但是當異常發生並且它想要生成堆棧跟蹤時,線程作爲沒有的調用用戶運行訪問讀取PDB文件。我們的應用程序需要impersonate = true才能工作,但我們通過允許每個人完全控制PDB文件的訪問權來解決它。 – Andy 2012-02-22 15:29:38

1

檢查Machine.config文件

在ASP.NET 2.0中有一個可以在machine.config中被打開一個開關,關閉所有調試= true,所以在2.0的應用程序,你可以做到這一點的情況下直接擔心找出哪些應用程序有和沒有它。從http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx

+0

我在本地機器上試過這種方法,它實際上完全關閉了跟蹤 - 只有異常文本是回。在默認情況下,我會得到跟蹤信息,只是沒有文件名和行號。 – Graeme 2010-04-20 08:55:31

1

根據question 4130956: 如果冒充=「true」時,得到的行數堆棧跟蹤,您需要將「調試程序」用戶權限分配給您用於登錄的帳戶。