我試圖獲得對web.config customErrors部分的引用。當我使用下面的代碼時,我總是得到一個空值。我沒有這個問題,當我得到一個我創建的自定義部分的引用,所以我有點傻眼爲什麼這不起作用。獲取對ASP.NET web.config customErrors部分的引用
CustomErrorsSection customErrorSection =
ConfigurationManager.GetSection("customErrors") as CustomErrorsSection;
我也試過這樣:
CustomErrorsSection customErrorSection =
WebConfigurationManager.GetSection("customErrors") as CustomErrorsSection;
我也試過這樣:
CustomErrorsSection customErrorSection =
WebConfigurationManager.GetWebApplicationSection("customErrors") as CustomErrorSection;
編輯:
哎呀!大多數情況下,我都是在問問題後才找出答案的。
這個工作對我來說:
System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("/");
CustomErrorsSection customErrorsSection = (CustomErrorsSection)configuration.GetSection("system.web/customErrors");
或者更簡單地說是這樣的:
CustomErrorsSection customErrors = (CustomErrorsSection) WebConfigurationManager.OpenWebConfiguration("/").GetSection("system.web/customErrors");
這也適用於:
CustomErrorsSection customErrorsSection = ConfigurationManager.GetSection("system.web/customErrors") as CustomErrorsSection;
所以我想我現在明白爲什麼我有問題擺在首位。我錯誤地認爲我可以通過嘗試GetSection(「customErrors」)獲得對customErrors部分的引用,但是我沒有告訴它它居住的是什麼根節,並且我試圖基於我知道如何當我沒有意識到我的自定義部分是該部分的根目錄時,得到一個自定義部分,所以當我調用GetSection()時,我不必在system.Web /的前面加上前綴。
也許一個愚蠢的問題,但該部分在您的配置文件存在嗎? – Oded
是的部分存在。 –
合法,可以幫助別人。不要刪除它。 – Oded