CustomErrors mode =“끄기”


254

웹앱을 제공 업체에 업로드 할 때마다 오류가 발생합니다. customErrors 모드로 인해 오류에 대한 자세한 내용을 보려면 customErrors를 끄도록 지시하는 기본 "런타임 오류"메시지 만 표시됩니다.

혼란스러워서 web.config를 다음과 같이 설정했습니다.

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

그리고 여전히, 내가 얻는 것은 유용한 정보가없는 바보 같은 원격 오류 페이지입니다. customErrors를 끄려면 어떻게해야합니까?!


1
추가 시도 @Model.Exception.Message받는 사람Shared/Error.cshtml
Muflix

일반적으로 설정 변환 (예 : 해당 값을 변경할 수있는 Web.Debug.config)을 확인하고 파일에서 해당 섹션 / 프로퍼티의 중복 정의를 확인하십시오 (이 경우에는 문제가되지 않았습니다)
Graham

답변:


164

이것은 지난 며칠 동안 나를 미치게 만들었고 그것을 해결할 수 없었지만 마침내 그것을 알아 냈습니다.

내 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 

희망은 누군가를 도와주고 몇 시간의 머리카락을 절약하는 것입니다.


좋은 지적. 그러나 완료 한 후에는 소매 모드를 다시 true로 설정하는 것이 가장 좋습니다 (또는 개발 컴퓨터에서 문제가되는 web.config에서 디버그 모드를 끄십시오). weblogs.asp.net/lasse/archive/2009/04/28/…
Stephen Kennedy

이것은 .NET 4.0의 기본 설정 인 것 같습니다. 알아내는 데 같은 문제가있었습니다. 프로덕션 환경에서 사용하기에 좋은 설정이지만, 디버깅 할 때 REAL 오류를 확인하는 것이 매우 중요합니다.
Jeremy

시간을 절약 할뿐 아니라 생명도 구했습니다. 그것은 나를 위해 일한 정확히
Pouya Samie

142

"끄기"는 대소 문자를 구분합니다.

web.config 파일에서 "O"가 대문자인지 확인하십시오. 소리가 나는 것처럼 몇 번 어려움을 겪었습니다.


49

이 질문에 더 많은 상황을 추가하기 위해 (이것은 내가 똑같은 문제를 겪었 기 때문에 내가 보았던 곳이기 때문에) 내 대답은 다음과 같습니다.

내 경우에는 일반적인 오류에서 텍스트를 잘라내어 붙여 넣었습니다. 실제로 잘못된 것을보고 싶다면

<system.web>
   <customErrors mode="Off"/>
</system.web>

따라서이 문제는 해결되었지만 물론 아닙니다! 내 문제는 <system.web> 노드가 위의 몇 줄 위에 (컴파일 및 인증 노드 이전에) 닫는 태그 </system.web>이 그 아래에 몇 줄 있다는 것입니다. 이 문제를 해결하면 문제가 해결되었습니다. 내가해야 할 일은 다음 줄만 복사 / 붙여 넣는 것입니다.

<customErrors mode="Off"/>

이것은 "파괴하는 길을 복사하여 붙여 넣기"장에서 내가 계속 반복하고있는 바보 같은 것들의 연대기에서 나온 것입니다.


질문 :이 답변은 ASP가 위에서 web.config 및 기타 구성 파일을 읽습니다 (예 : 하향식). 구성 파일을 "단일 인스턴스"로 읽은 것으로 컴파일러가 먼저 구성 파일의 정확성을 분석 한 다음이를 컴파일하는 것으로 생각했지만 한 줄씩 컴파일하는 것 같습니다. 그게 사실입니까?
Fandango68

@ Fernando68, 이것은 별도의 질문으로 넣는 것이 좋습니다. 댓글에 대한 토론은 정확히 최적이 아닙니다. 나는 .NET 엔지니어는 아니지만 분명히 .NET은 한 줄씩 컴파일하지 않습니다. Xml 파일이므로 계층 적입니다. 그러나 계층 구조가 잘못 구성되면 Xml 파서는 구문 분석 중에 예외를 발생시킵니다. 다시 말해, 전체 Xml 파일을 전체로 가져와야합니다. 그러나 Xml이 잘못되면 필요한 개체를 전혀 만들 수 없습니다!
Cyberherbalist

나는 이미 그것을 별도의 질문 stackoverflow.com/questions/30471043/… 으로 제기했습니다 . 답변을 보내 주셔서 감사합니다. 다른 게시물에서 얻은 답변입니다. 건배
Fandango68

10

Sharepoint 2010 응용 프로그램의 경우 편집 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config및 정의 해야 합니다<customErrors mode="Off" />


7

나는 여기에 설명 된 것들 대부분을 시도했다. 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 구문 오류가 있습니까?"라는 답을 모두 배제 할 수 있습니다.


웹 사이트 수준에서 web.config를 변경하면 나에게 도움이되었습니다. 이전에는 응용 프로그램의 web.config 파일로드를 수정했지만 실패했습니다. 감사!
The1nk

7

실제로이 문제를 해결하는 데 도움이 된 한 가지 대답은 다음과 같습니다 .https : //.com

이것을 다음에 추가하십시오 web.config:

<configuration>  
  <system.webServer>  
    <httpErrors existingResponse="PassThrough"/>  
  </system.webServer>  
<configuration>

3
내가 찾은 <httpErrors errorMode="Detailed" />모든 정보를 알려주었습니다.
alastairtree


5

나도이 문제가 있었지만 Apache와 mod_mono를 사용할 때. 해당 상황의 다른 사용자는 web.config를 변경 한 후 새 버전을 강제로 읽도록 Apache를 다시 시작해야합니다.


5

여전히 해당 페이지가 표시되면 Web.Config를 지나기 전에 페이지가 폭파되었을 수 있습니다.

ASP.Net에 .Net Framework 폴더, IIS 메타베이스 등과 같은 권한이 있는지 확인하십시오. ASP.Net이 올바르게 설치되고 IIS에 올바르게 연결되어 있는지 확인할 수있는 방법이 있습니까?

편집 : Greg의 의견 후 나에게 당신이 게시 한 것이 전체 최소 web.config라고 생각했습니다. 더 많은 것이 있습니까? 그렇다면 전체 web.config를 게시 할 수 있습니까?


이 문제가 몇 번 발생하면 web.config에서 오류로 판명되었습니다. 먼저 미세 톱니 빗으로 넘어갑니다.
Greg Hurlman

그렇습니다. 저는 web.config를이 최소 설정으로 재정의했습니다. 여전히 기쁨이 없다
Radu094

사용중인 응용 프로그램 풀의 사용자에게 내 응용 프로그램이 배포 된 디렉토리에 대한 읽기 권한이 없습니다. 여전히 문제가 있음을 알려주는 오류가 표시되지 않는 이유를 여전히 알 수 없습니다.
lambacck

이 오류는 종종 시스템 / 보안 이벤트 로그 (IIS 7까지)에서만 발견 될 수 있지만 대부분의 경우 이벤트 로그에 쉽게 액세스 할 수 있습니다.
Nick Craver

5

내 문제는 이것을 내 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>

2
<httpErrors errorMode="Detailed"예를 들어 도움이되는 대체품
it3xl

2

사실, 내 웹 응용 프로그램을 호스팅하는 동안 알아 낸 것은 로컬 컴퓨터에서 개발 한 코드가 호스팅 회사가 제공하는 것보다 높은 버전입니다. 관리자 권한이있는 경우 웹 호스팅 설정에서 Microsoft ASP.NET 버전 지원을 변경할 수 있습니다.


2

우리는이 문제가 있었고 IIS 사용자가 웹 서버의 시스템 구성에 액세스 할 수 없기 때문에 발생했습니다.


2

우리는 또한이 오류에 부딪 쳤고 우리의 경우에는 응용 프로그램 풀 사용자에게 더 이상 web.config 파일에 대한 권한이 없었기 때문입니다. 권한을 잃은 이유는 이전에 모든 것이 좋았 기 때문에 rar 파일에 사이트 백업이 있었고 rar에서 사이트로 web.config의 백업 버전을 드래그했기 때문입니다. 로그온 한 사용자를 제외한 web.config 파일에 대한 모든 권한이 제거 된 것 같습니다.

폴더 수준에 대한 권한을 반복적으로 확인했지만 파일 수준에 대해서는 절대 확인하지 않았기 때문에이를 파악하는 데 시간이 걸렸습니다.


2

나는 같은 문제가 있었지만 다른 방식으로 해결되었다.

-

내가 한 일은 IIS 관리자 에서 응용 프로그램 풀 에 대한 고급 설정 을 열었습니다 .

거기에서 32 비트 응용 프로그램 사용True로 설정했습니다 .


1

응용 프로그램을 다시 시작해보십시오 (app_offline.htm을 삭제하는 것보다 작성하는 경우). 같은 오류 메시지가 계속 표시되면 web.config 또는 이와 유사한 항목에서 customErrors를 한 번만 선언했는지 확인하십시오. web.config의 오류는 응용 프로그램에 이상한 영향을 줄 수 있습니다.


1
web.config를 수정할 때마다 웹 사이트가 다시 시작되므로 app_offline.htm을 만들 필요가 없습니다!
Matt Frear

사실, 앱을 재설정하기 위해 app_offline을 제안한 이유를 모르겠습니다. :)
Adam Vigh

1

web.config에 æøå와 같은 특수 문자가 있습니까? 그렇다면 인코딩이 utf-8로 설정되어 있는지 확인하십시오.


1

이 웹앱이 웹 사이트의 디렉토리 트리에있는 다른 앱 아래에 설정되어 있습니까? 다른 설정이 있는지 부모 web.config 파일을 확인하십시오 (있는 경우). 또한 디렉토리가 IIS에서 응용 프로그램 디렉토리로 설정되어 있는지 확인하십시오.


1

MVC 미리보기 4를 사용하는 경우 HandleErrorAttribute를 사용하기 때문에이 문제가 발생할 수 있습니다. 사용자 지정 오류를 끄면 예외를 처리하지 않도록 동작이 5로 변경되었습니다.


1

서버 시스템의 브라우저에서 웹 사이트를 불러올 수도 있습니다. ASP.NET 개발을 많이하지는 않지만 사용자 지정 오류에는 보안 조치로 서버에 전체 오류 텍스트 만 표시하는 설정이 있습니다.


1

방금 비슷한 문제를 처리했습니다. 필자의 경우 2.0 웹 응용 프로그램을 시작하려고하는 동안 기본 사이트 asp.net 버전은 1.1이었습니다. 이 오류는 사소한 것이었지만 사용자 지정 오류가 사라지지 않는 이유는 명확하지 않았으며 런타임은 이벤트 로그에 기록하지 않았습니다. 명백한 수정은 IIS의 Asp.Net 탭에있는 버전과 일치하는 것입니다.


우리는 같은 문제가 있었다. 응용 프로그램은 2.0 했어야 반면 "connectionstrings"노드는 프레임 워크 1.1에서 오류를 일으키는
mosheb

1

또한 내가하고있는 것처럼 website.config가 아닌 web.config를 편집하고 있는지 확인하십시오.


0

나는 같은 문제가 있었고, 그 이유는 IIS가 ASP.NET 1.1을 실행 중이고 사이트에 .NET 2.0이 필요했기 때문입니다.

오류 메시지는 아무것도하지 않았지만 몇 시간 동안 나를 추적하지 못했습니다.


0

system.web 바로 뒤에 추가하십시오

나는 노드의 끝 부분에 그것을 넣었고 작동하지 않았습니다.


0

구성 변환을 수행하는 경우 관련 web.config 파일에서 다음 행을 제거해야 할 수도 있습니다.

<compilation xdt:Transform="RemoveAttributes(debug)" />

0

여기에있는 모든 대답을 시도한 결과 내 Application_Error방법에는 다음이 있음이 밝혀졌습니다 .

Server.ClearError();
Response.Redirect("/Home/Error");

이 줄을 제거하고 설정하면 문제가 해결되었습니다. 클라이언트는 여전히 오류 페이지로 리디렉션되었습니다 customErrors="On".


0

나는 같은 문제를 겪었고 이벤트 뷰어 응용 프로그램 로그를 통해 어떤 예외가 발생했는지 명확하게 언급했습니다. 내 경우에는 예외는 다음과 같습니다.

예외 정보 :

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.

방금 응용 프로그램 풀에서 내 비밀번호를 업데이트했으며 나에게 적합합니다.


0

경우에 따라 web.config의 형식이 잘못되었을 수도 있습니다. 이 경우 작동하기 전에 한 줄씩 진행해야합니다. 종종 재 작성 규칙이 범인입니다.


0

정말 이상합니다. 이 오류가 발생하여 서버를 재부팅 한 후 사라졌습니다.


0

나에게 그것은 system.web 위의 web.config에서 더 높은 오류였습니다.

파일 blah가 존재하지 않아서 해당 시점에서 오류가 발생했습니다. 아직 System.Web 섹션에 도달하지 않았기 때문에 CUstomErrors (On)에 대한 서버 기본 설정을 사용하고있었습니다.


(이 게시물은 질문에 대한 양질의 답변 을 제공하지 않는 것 같습니다 . 답변 을 수정하여 개선하거나 질문에 대한 의견으로 게시하십시오.)
sɐunıɔ ןɐ qɐp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.