2012-11-01 92 views
1

在開發我明白爲什麼PDB文件版本。 但是,當我爲生產服務器部署我的網站時,PDB文件仍然存在。 我不明白爲什麼。ASP.NET生產服務器PDB文件

我應該刪除他們在生產環境中或離開他們

+0

退房這個問題http://stackoverflow.com/questions/608002/do-you-have-to-deploy-the-pdb-file-with-compiling-under-release –

回答

6

的PDB文件使你的代碼的堆棧跟蹤,當應用程序引發未處理的異常將被記錄。

如果您的網站有CustomErrors在web.config中設置爲OFF那麼您的錯誤代碼將爲每個人都可見。這不好。

如果您的網站在設置爲ONRemoteOnly那麼你的示數代碼不會公開顯示在web.config CustomErrors,然而,你將能夠找到的堆棧跟蹤服務器的事件日誌,這可以幫助你追蹤代碼中的錯誤。還行吧。

如果刪除了PDBS(或者通過你的項目構建發佈,然後停止/發佈配置),那麼你的網站將無法登錄你的代碼在你的堆棧跟蹤,但它會記錄其他堆棧信息。在任何情況下,始終在web.config設置CustomErrorsONRemoteOnly。總是這樣做。

+1

在這兩種情況下,異常都將包含堆棧跟蹤,但對於PDB文件,它們也將包含行號。 http://stackoverflow.com/questions/381537/deploying-pdb-files-in-iis-any-benefit?rq=1 – Robert

0

PDB文件進行調試,但你可以讓他們在生產服務器上。沒有什麼大不了的事情

1

您可以安全地刪除它們。它們用於調試和代碼源的目的。

如果您不希望在您的項目設置,然後部署PDB-文件執行(右鍵單擊該項目並選擇屬性>構建):

您可以選擇Configuration:您正在使用部署(例如Release),然後在Output部分,按Advanced.. - 按鈕打開高級構建設置並設置Debug Info:none(通常是pdb-only在釋放模式)。

然後每次在發行模式正在部署時間PDB-文件將不會產生。

+0

因此,PDB文件不nessecory ?我們每次更新DLL文件時都不必在服務器中更新它們? : - ? – Reza

+0

@Reza正確。該代碼仍然有效。我通常刪除它們,只在需要調試生產服務器時添加=) –