簡體   English   中英

機器可變的web.config元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM