web.config의 <system.webServer><httpErrors>
요소에 errorMode 속성 값을 설정하는 방법은 무엇입니까?httpErrors errorMode을 프로그래밍 방식으로 확인하십시오.
ASP.NET 웹 응용 프로그램에서 "자체 진단"을 구현하려고합니다. 앱이 시작되면 web.config의 일부 설정을 통해 실행되고 올바르게 설정되었는지 확인합니다.
errormode가 <system.web><customErrors>
요소에 설정되어있는 경우이 코드가 매우 잘 작동하지만
system.webServer -> httpErrors
에서 발견되면 그것이 작동하지 않습니다
var errSec = (CustomErrorsSection)HttpContext.Current.GetSection("system.web/customErrors");
Response.Write(errSec.Mode.ToString());
.
이 작동하지 않습니다
var errSec = (CustomErrorsSection)HttpContext.Current.GetSection("system.webServer/httpErrors");
그리고 CustomErrorsSection
에 캐스팅 또한 나쁜 생각처럼 보인다는 더 나은 유형을 사용하는이 있어야한다?
IIS.NET의 HTTP Errors에서이 기사가 발견되었지만 Microsoft.Web.Administration 라이브러리에 의존하지 않고이 작업을 수행하기를 바랍니다.
제안 사항 아래의 제안에 따라 좋아
UPDATE
이, 나는이 시도 :
var errSec = (ConfigurationSection)HttpContext.Current.GetSection("system.webServer/httpErrors");
Response.Write(errSec.SectionInformation.GetRawXml().ToString());
을하지만 그 중 하나가 작동하지 않습니다는 errSec
개체가 null입니다. 그리고 부수적으로, 동일한 접근법을 사용하여 <system.web><customErrors>
섹션을로드하면 GetRawXml()
메서드 호출이 "이 작업은 런타임에 적용되지 않습니다."와 함께 실패합니다. 예외 메시지.
나는 전체 web.config를 XML 파일로로드하고 내가 필요한 요소를 얻는 방법을 알고있다. 하지만 좀 더 우아한 접근 방식이 필요하다는 생각이 들었습니다. XML로의 Web.config를 읽는 방법
:
var conf = XDocument.Load(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "web.config");
var errMode = conf.Root.Element("system.webServer").Element("httpErrors").Attribute("errorMode").Value;
...하지만 그건 그냥 불쾌한입니다! 그리고 errorMode 설정이 machine.config 또는 유사하게 설정되어 있으면 작동하지 않습니다.
항상 반사를 사용할 수 있습니다 .-) – Steven
그래, 나는 "XML로 읽음"접근법을 피하는 다른 옵션으로 언급하는 것을 잊어 버렸습니다. :) 나는 그것을 ConfigurationSection으로로드하려했지만 errorMode 속성을 얻는 방법을 알 수 없었다. 어떤 아이디어? –