2010-05-24 26 views
1

基本思想是我們有一個模擬Production的測試環境,因此customErrors =「RemoteOnly」。我們只是建立了一個針對測試環境運行的測試工具並檢測出中斷。我們希望它能夠撤回詳細的錯誤。但是我們不想打開customErrors =「On」,因爲它不會模仿Production。半動態更改web.config中的customErrors

我環顧四周,想了很多,我想出的一切都是不可能的。我對這些觀點有錯嗎?

  • 我們無法在運行時關閉customErrors,因爲當您調用configuration.Save()時 - 它將web.config寫入磁盤,現在每個請求都關閉。
  • 我們不能將文件符號鏈接到一個新的頂層目錄,因爲它是自己的web.config,因爲我們在windows上,而windows上的subversion沒有做符號鏈接。
  • 我們不能用URL的映射,使一個空文件夾DIR2有自己的web.config,並在dir1的文件似乎是在DIR2 - 在web.config不適
  • 我們不能將所有aspx文件複製到dir2與它自己的web.config,因爲沒有任何鏈接將是一致的,這是一個可怕的哈克解決方案。
  • 基於主機名,我們不能改變在web.config中的customErrors(例如添加其他DNS條目到測試服務器),因爲這是不可能的/支持
  • 我們不能做任何虛擬目錄有心計,使其工作。

如果我不是,有沒有辦法完成我想要做的事情?在某些情況下(dns名稱甚至querystring值)在整個站點打開customErrors?

回答

1

如果你有customErrors =「On」或「remoteOnly」,錯誤細節不會消失嗎?我的意思是你仍然可以訪問它並使用你的自定義錯誤頁面將它記錄到另一個源。

爲什麼不讓生產日誌中的自定義錯誤頁面將信息放在您的安全帶可以訪問它的某處,如消息隊列或應用程序事件日誌?當線束遇到突破時,它必須足夠聰明才能在正確的位置查找完整的錯誤信息。

無論如何要考慮的另一件事。

+0

這就是我們現在放在一起的黑客,它使我們有60%的時間,50%的時間。但是我們使用nUnitASP作爲線束,並且它很好地解析了死亡的黃頁,從而爲您提供錯誤細節。我希望能夠重新獲得這一點。 – 2010-05-24 19:32:31