2010-02-04 38 views
5

這讓我感到非常緊張。我使用VS 2008實現了帶有C#的Web服務。我在IIS上發佈它。我修改了發佈版本,以便將pdb文件與dll一起復制到inetpub上的目標目錄中。儘管包含PDB文件,但在堆棧跟蹤事件中沒有行號

另外web.config文件的debug = true。

然後我調用一個引發異常的Web服務。堆棧跟蹤不包含行號。我不知道我在這裏錯過了什麼想法?

附加信息: 如果我運行使用VS內置的Web服務器的Web應用程序,它的工作原理和我在堆棧跟蹤獲得的行號。但是,如果我複製VS內置web服務器使用的相同文件(pdb和dll)到IIS,仍然在堆棧跟蹤中缺少行號。

似乎有什麼與忽略pdb文件的IIS有關!

更新 當我發佈到IIS時,所有的pdb文件都發布在bin目錄下,一切都很正常。但是當我到與我的項目相關的特定目錄下的「C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files」時,我可以看到程序集(.dll)文件都在那裏,但沒有pdb文件。 但是,如果我使用VS內置的Web服務器運行項目,則不會發生這種情況。 因此,如果我手動將pdb文件複製到臨時文件夾,我可以看到行號。

任何想法爲什麼pdb文件沒有複製到臨時文件夾?

順便說一句,當我附加到工作進程,我可以看到它說符號加載!

+0

你使用WCF來調用該webservice? – 2010-02-04 23:54:21

+0

不,它是asmx web服務 – kaptan 2010-02-05 01:05:52

+0

[IIS即使pdb存在,但沒有給出堆棧跟蹤中的行號]的可能重複(http://stackoverflow.com/questions/2673623/iis-not-giving-line-numbers-in- stack-trace-even-though-pdb-present) – 2014-04-07 16:03:40

回答

0

也許你發佈到服務器具有<deployment retail="true" />設置在系統machine.config文件配置爲:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

欲瞭解更多信息,請參閱:

ASP.NET configuration - deployment Element (ASP.NET Settings Schema)

只是一個想法。

+0

我檢查了該文件,並且該文件中沒有。 – kaptan 2010-02-15 17:50:37

+0

在上述鏈接的帖子評論http://stackoverflow.com/questions/2673623/iis-not-giving-line-numbers-in-stack-trace-even-though-pdb-present/2673642#2673642,用戶@Graeme說如果你這樣做,它會完全關閉堆棧跟蹤,而不僅僅是行號。 – 2011-10-21 13:05:07

0

使用VS或windbg附加到工作進程並查看它是否能夠找到您的pdb以及它是否與您的程序集匹配?

另一個常見的原因是你實際上使用發佈dll [已優化]。我懷疑這是什麼與IIS有關。

+0

.pdb文件可以與「Release」或優化的DLL一起使用,沒有問題。我做了很多次。 – 2015-07-13 20:47:07

0

請確保在web.config中設置「debug = true」,沒有它,在例外情況下不會顯示行號。

+0

它已經在那裏 – kaptan 2010-02-25 19:23:07

0

不知道這是否會幫助,但在我的VS2008 C#項目屬性,構建選項卡下,有一個高級按鈕,我必須設置調試信息爲「全」或「PDB-只有」

1

我這是同樣的問題,並試圖在陽光下嘗試修復它。直到我在這個類似的問題中找到了可接受的答案:IIS not giving line numbers in stack trace even though pdb present

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

<identity impersonate="true" /> 

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

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

我需要冒充被打開我的大多數網站(和那些網站有行號,去圖),所以我禁用了這個特定的網站,並得到了我的行號!

+1

這是唯一適用於我的解決方案。我希望「impersonate = true」不是我的網站所需要的。 – Arvin 2012-03-27 04:47:46