CustomErrors mode =“끄기”
웹앱을 제공 업체에 업로드 할 때마다 오류가 발생합니다. customErrors 모드로 인해 오류에 대한 자세한 내용을 보려면 customErrors를 해제하라는 기본 "런타임 오류"메시지 만 표시됩니다.
혼란스러워서 web.config를 다음과 같이 설정했습니다.
<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
그리고 여전히, 내가 얻는 것은 유용한 정보가없는 바보 같은 원격 오류 페이지입니다. customErrors를 끄려면 어떻게해야합니까?!
이것은 지난 며칠 동안 나를 미치게 만들었고 그것을 해결할 수 없었지만 마침내 그것을 알아 냈습니다.
내 machine.config 파일에서 아래에 항목이 있습니다 <system.web>
.
<deployment retail="true" />
이것은 web.config 파일에 지정한 다른 customError 설정을 무시하므로 위 항목을 다음으로 설정하십시오.
<deployment retail="false" />
이제 필요한 세부 오류 메시지를 다시 볼 수 있습니다.
machine.config
에 위치
32 비트
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64 비트
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
희망은 누군가를 도와주고 몇 시간의 머리카락을 절약하는 것입니다.
"끄기"는 대소 문자를 구분합니다.
web.config 파일에서 "O"가 대문자인지 확인하십시오. 소리가 나는 것처럼 몇 번 어려움을 겪었습니다.
이 질문에 더 많은 상황을 추가하기 위해 (이것은 내가 똑같은 문제를 겪었 기 때문에 내가 보았던 곳이기 때문에) 내 대답은 다음과 같습니다.
내 경우에는 일반적인 오류에서 텍스트를 잘라내어 붙여 넣었습니다. 실제로 잘못된 것을보고 싶다면
<system.web>
<customErrors mode="Off"/>
</system.web>
그래서 이것은 고쳐야했지만 물론 아닙니다! 내 문제는 <system.web> 노드가 위의 몇 줄 위에 (컴파일 및 인증 노드 이전에) 닫는 태그 </system.web>이 그 아래에 몇 줄 있다는 것입니다. 이 문제를 해결하면 문제가 해결되었습니다. 내가해야 할 일은 다음 줄만 복사 / 붙여 넣는 것입니다.
<customErrors mode="Off"/>
이것은 "파괴하는 길을 복사하여 붙여 넣기"장에서 내가 계속 반복해서하는 바보 같은 것들의 연대기에서 나온 것입니다.
Sharepoint 2010 응용 프로그램의 경우 편집 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config
및 정의 해야 합니다<customErrors mode="Off" />
실제로이 문제를 해결하는 데 도움이 된 한 가지 대답은 다음과 같습니다. https://stackoverflow.com/a/18938991/550975
이것을 다음에 추가하십시오 web.config
:
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
<configuration>
나는 여기에 설명 된 것들 대부분을 시도했다. VWD를 사용하고 있었고 기본 web.config 파일에 다음이 포함되었습니다.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
mode = "RemoteOnly"를 mode = "Off"로 변경했습니다. 여전히 기쁨은 없습니다. 그런 다음 IIS 관리자, 속성, ASP.Net 탭, 구성 편집을 사용하고 CustomeErrors 탭을 선택했습니다. 이것은 여전히 RemoteOnly를 보여주었습니다. 나는 이것을 끄기로 변경했고 마침내 자세한 오류 메시지를 볼 수있었습니다.
web.config를 검사했을 때 system.web에 두 개의 CustomErrors 노드가 있음을 알았습니다. 방금 두 번째 항목 (내가 변경 한 항목이 주석 안에 있음)을 알았습니다. 따라서 원격 서버에서 메모장을 사용하여 web.config를 검사하지 마십시오.
그러나 IIS 편집 구성을 사용하면 web.config의 오류에 대해 불평합니다. 그런 다음 "web.config에 XML 구문 오류가 있습니까?"라는 답을 모두 배제 할 수 있습니다.
액세스 할 수있는 경우 이벤트 뷰어에서 오류에 대한 자세한 정보를 찾을 수 있습니다. 공급자는 machine.config에서 재정의하거나 retail 특성을 true로 설정하여 사용자 지정 오류가 전혀 표시되지 않도록 할 수도 있습니다 ( http://msdn.microsoft.com/en-us/library/ms228298 ( VS.80) .aspx ).
나도이 문제가 있었지만 Apache와 mod_mono를 사용할 때. 해당 상황의 다른 사용자는 web.config를 변경 한 후 새 버전을 강제로 읽도록 Apache를 다시 시작해야합니다.
여전히 해당 페이지가 표시되면 Web.Config를 지나기 전에 페이지가 폭파되었을 수 있습니다.
ASP.Net에 .Net Framework 폴더, IIS 메타베이스 등과 같은 권한이 있는지 확인하십시오. ASP.Net이 올바르게 설치되고 IIS에 올바르게 연결되어 있는지 확인하는 방법이 있습니까?
편집 : Greg의 의견 후 나에게 당신이 게시 한 것이 전체 최소 web.config라고 생각했습니다. 더 많은 것이 있습니까? 그렇다면 전체 web.config를 게시 할 수 있습니까?
내 문제는 이것이 내 web.config에 정의되어 있다는 것입니다.
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error/Internal" />
</httpErrors>
사실, 내 웹 응용 프로그램을 호스팅하는 동안 알아 낸 것은 로컬 컴퓨터에서 개발 한 코드가 호스팅 회사가 제공하는 것보다 높은 버전입니다. 관리자 권한이있는 경우 웹 호스팅 설정에서 Microsoft ASP.NET 버전 지원을 변경할 수 있습니다.
우리는이 문제가 있었고 IIS 사용자가 웹 서버의 시스템 구성에 액세스 할 수 없기 때문에 발생했습니다.
또한이 오류가 발생했으며이 경우 응용 프로그램 풀 사용자에게 더 이상 web.config 파일에 대한 권한이 없기 때문입니다. 권한을 잃은 이유는 이전에 모든 것이 좋았 기 때문에 rar 파일에 사이트 백업이 있었고 rar에서 사이트로 web.config의 백업 버전을 드래그했기 때문입니다. 로그온 한 사용자를 제외하고 web.config 파일에 대한 모든 권한이 제거 된 것 같습니다.
폴더 수준에 대한 사용 권한을 반복적으로 확인했지만 파일 수준에 대해서는 절대 확인하지 않았기 때문에이를 파악하는 데 시간이 걸렸습니다.
응용 프로그램을 다시 시작해보십시오 (app_offline.htm을 삭제하는 것보다 작성하는 경우). 같은 오류 메시지가 계속 표시되면 web.config 또는 이와 유사한 항목에서 customErrors를 한 번만 선언했는지 확인하십시오. web.config의 오류는 응용 프로그램에 이상한 영향을 줄 수 있습니다.
web.config에 æøå와 같은 특수 문자가 있습니까? 그렇다면 인코딩이 utf-8로 설정되어 있는지 확인하십시오.
이 웹앱이 웹 사이트의 디렉토리 트리에있는 다른 앱 아래에 설정되어 있습니까? 다른 설정이 있는지 부모 web.config 파일을 확인하십시오 (있는 경우). 또한 디렉토리가 IIS에서 응용 프로그램 디렉토리로 설정되어 있는지 확인하십시오.
MVC 미리보기 4를 사용하는 경우 HandleErrorAttribute를 사용하기 때문에이 문제가 발생할 수 있습니다. 사용자 지정 오류를 끄면 예외를 처리하지 않도록 동작이 5로 변경되었습니다.
서버 시스템의 브라우저에서 웹 사이트를 불러올 수도 있습니다. ASP.NET 개발을 많이하지는 않지만 사용자 지정 오류에는 보안 조치로 서버에 전체 오류 텍스트 만 표시하는 설정이 있습니다.
방금 비슷한 문제를 처리했습니다. 필자의 경우 2.0 웹 응용 프로그램을 시작하려고하는 동안 기본 사이트 asp.net 버전은 1.1이었습니다. 이 오류는 사소한 것이었지만 사용자 지정 오류가 사라지지 않는 이유는 명확하지 않았으며 런타임은 이벤트 로그에 기록하지 않았습니다. 명백한 수정은 IIS의 Asp.Net 탭에있는 버전과 일치하는 것입니다.
나는 같은 문제가 있었지만 다른 방식으로 해결되었다.
-
내가 한 일은 IIS 관리자 에서 응용 프로그램 풀의 고급 설정 을 열었습니다 .
거기에서 32 비트 응용 프로그램 사용 을 True로 설정했습니다 .
나는 같은 문제가 있었고, 그 이유는 IIS가 ASP.NET 1.1을 실행 중이고 사이트에 .NET 2.0이 필요했기 때문입니다.
오류 메시지는 아무것도하지 않았지만 몇 시간 동안 나를 추적하지 못했습니다.
system.web 바로 뒤에 추가하십시오
나는 노드의 끝 부분에 그것을 넣고 작동하지 않았습니다.
또한 내가하고있는 것처럼 website.config가 아닌 web.config를 편집하고 있는지 확인하십시오.
구성 변환을 수행하는 경우 관련 web.config 파일에서 다음 행을 제거해야 할 수도 있습니다.
<compilation xdt:Transform="RemoveAttributes(debug)" />
여기에있는 모든 대답을 시도한 결과 내 Application_Error
방법에는 다음이 있음이 밝혀졌습니다 .
Server.ClearError();
Response.Redirect("/Home/Error");
이 줄을 제거하고 설정하면 문제가 해결되었습니다. 클라이언트는 여전히 오류 페이지로 리디렉션되었습니다 customErrors="On"
.
나는 같은 문제를 겪었고 이벤트 뷰어 응용 프로그램 로그를 통해 어떤 예외가 발생했는지 명확하게 언급했습니다. 내 경우에는 예외는 다음과 같습니다.
예외 정보 :
Exception type: HttpException
Exception message: The target principal name is incorrect. Cannot generate SSPI context.
at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
The target principal name is incorrect. Cannot generate SSPI context.
방금 응용 프로그램 풀에서 내 비밀번호를 업데이트했으며 나에게 적합합니다.
경우에 따라 web.config의 형식이 잘못되었을 수도 있습니다. 이 경우 작동하기 전에 한 줄씩 진행해야합니다. 종종 재 작성 규칙이 범인입니다.
정말 이상합니다. 이 오류가 발생하여 서버를 재부팅 한 후 사라졌습니다.
나에게 그것은 system.web 위의 web.config에서 더 높은 오류였습니다.
파일 blah가 존재하지 않아서 해당 시점에서 오류가 발생했습니다. 아직 System.Web 섹션에 도달하지 않았기 때문에 CUstomErrors (On)에 대한 서버 기본 설정을 사용하고있었습니다.
참고 URL : https://stackoverflow.com/questions/101693/customerrors-mode-off
'Programing' 카테고리의 다른 글
iOS 시뮬레이터 스크린 샷은 어디에 저장됩니까? (0) | 2020.04.07 |
---|---|
C에 화살표 (->) 연산자가 존재하는 이유는 무엇입니까? (0) | 2020.04.07 |
다른 곳에 YAML 파일을 어떻게 포함시킬 수 있습니까? (0) | 2020.04.07 |
선과 가로 축 사이의 각도를 계산하는 방법은 무엇입니까? (0) | 2020.04.07 |
홈 버튼처럼 작동하도록 뒤로 버튼 재정의 (0) | 2020.04.07 |