[英]Machine-variable web.config elements?
在web.config中,是否可以指定機器特定的值? 例如:在生產中,我希望<customErrors>
節點重定向到特定頁面以顯示用戶友好的錯誤處理頁面,但是在開發,測試和登台中,我希望<customErrors mode="Off" />
以便看到盡可能多的細節。
目前可以嗎?
在ASP.NET 2及更高版本中,許多配置元素現在都支持“ configSource ”屬性,該屬性使您可以用外部文件替換該部分的內容。 這樣一來,您就可以在主要的web.config中進行常規設置,然后針對各個已知環境的各個部分分別設置文件。
正如Nathan所指出的,在這種情況下,您可以使用RemoteOnly模式,當您在“ localhost”上瀏覽站點時,它將顯示完整的錯誤-如果您不在LocalHost上進行開發,那么這將無濟於事。
VS2010將添加一項新功能,您可以在其中基於生成目標修改配置文件,因此,發行版或生產版本可以將其自動設置為“打開”,而調試或暫存可能將其設置為“關閉”。
另一個選擇是掛接到global.asax中的Application_Error事件,如果用戶以某種管理員身份登錄,則輸出堆棧跟蹤,否則顯示錯誤頁面。
我正在寫並接受自己的答案,因為我提出的問題沒有答案。 對於路徑:
C:\\inetput\\wwwroot
wwwroot是相對根,我的目標是將<customErrors>
的計算機特定指令放在inetpub
目錄中,以便XCopying新代碼自動在外部配置文件中獲取已建立的計算機設置。 可以通過編輯machine.config文件來執行此操作,但這只是解決方案的底層(在服務器管理員執行此操作之前,需要紙上經理的簽名)。
因此,我只是堅持為開發,測試和登台服務器編輯web.config文件的現狀 。
<customErrors mode="RemoteOnly">
將為您完成此操作。
如果你做
<customErrors mode="RemoteOnly">
那么您將在Web Server計算機上看到詳細的錯誤消息,但在所有遠程計算機中都看到友好的錯誤消息(需要在web.config中指定)。
這不是.config文件的目的嗎? 針對不同環境的不同配置? 對於網站,我們始終為每個環境使用不同的web.configs(引用不同的連接字符串等。)Nathan Taylors的回答對於您的特定問題是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.