itsource

사용자 지정 오류 모드="Off"

mycopycode 2023. 4. 27. 22:22
반응형

사용자 지정 오류 모드="Off"

웹 앱을 공급자에게 업로드할 때마다 오류가 발생합니다.사용자 지정 오류 모드로 인해 오류에 대한 자세한 내용을 보려면 사용자 지정 오류를 끄라는 기본 "실행 시간 오류" 메시지만 표시됩니다.

화가 나서 web.config를 다음과 같이 설정했습니다.

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

그런데도, 제가 받는 것은 유용한 정보가 없는 멍청한 원격 오류 페이지뿐입니다.사용자 지정 오류를 해제하려면 또 무엇을 해야 합니까?!

이것은 지난 며칠 동안 저를 미치게 했고 피할 수 없었지만 마침내 그것을 알아냈습니다:

에서 machine.config 파일 아래에 .<system.web>:

<deployment retail="true" />

이렇게 하면 web.config 파일에 지정한 다른 사용자 정의 오류 설정이 재정의되므로 위 항목을 다음으로 설정합니다.

<deployment retail="false" />

이제 필요한 상세 오류 메시지를 다시 한 번 볼 수 있습니다.

machine.config는 다음과 같습니다.

32비트

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64비트

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config

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

web.config 파일에서 "O"가 대문자인지 확인하십시오. 저는 몇 번 그런 일을 겪었습니다(간단하게 들리지만).

이 질문에 더 많은 상황을 추가하기 위해(내가 정확히 같은 문제를 겪고 있었기 때문에 여기를 살펴봤기 때문에), 제 대답은 다음과 같습니다.

저의 경우, 일반적인 오류의 텍스트를 잘라내어 붙여넣었습니다. "무엇이 잘못되었는지 확인하고 싶으면,

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

그래서 이것은 그것을 고쳤어야 했지만, 물론 아닙니다!저의 문제는 <시스템>이 있다는 것이었습니다.web> 노드는 위의 여러 줄(컴파일 및 인증 노드 앞)과 닫는 태그 </system>입니다.web> 그 아래 몇 줄.일단 제가 이것을 고치면, 좋아요, 문제가 해결되었습니다.이 줄만 복사/붙여넣기를 해야 했습니다.

<customErrors mode="Off"/>

이것은 "파괴로 가는 길을 복사해서 붙여넣기"라는 장에 있는 "내가 계속해서 반복해서 하는 어리석은 일들"의 연대기에서 나온 것입니다.

응용 에는 인트포쉐 2010 응램의경다합편니다야집해음을어우로그프용▁edit합▁also▁for다니▁you▁shouldations,쉐▁applic▁2010point어야편▁share집해를 편집해야 합니다.C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config 정의합니다.<customErrors mode="Off" />

저는 여기에 설명된 대부분의 것들을 시도했습니다.VWD를 사용하고 있었는데 기본 web.config 파일에 다음이 포함되어 있었습니다.

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

모드를 변경했습니다="RemoteOnly" to mode="Off".여전히 즐겁지 않습니다.그런 다음 IIS 관리자, 속성, ASP를 사용했습니다.Net 탭, Edit configuration, Custom Errors 탭을 선택합니다.이 화면에는 여전히 RemoteOnly(원격 전용)가 표시됩니다.나는 이것을 Off로 변경했고 마침내 자세한 오류 메시지를 볼 수 있었습니다.

web.config를 검사했을 때 시스템에 2개의 CustomErrors 노드가 있는 것을 보았습니다.웹; 그리고 저는 방금 두 번째 항목(변경 중인 항목이 댓글 안에 있음)을 알아챘습니다.따라서 메모장을 사용하여 원격 서버에서 web.config를 검사하지 마십시오.

그러나 IIS 편집 구성 항목을 사용하면 web.config의 오류에 대해 불평합니다.그런 다음 "web.config에 XML 구문 오류가 있습니까?"라는 모든 대답을 제외할 수 있습니다.

이 문제를 해결하는 데 실제로 효과가 있었던 유일한 답은 https://stackoverflow.com/a/18938991/550975 입니다.

여기에 추가하기만 하면 됩니다.web.config:

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

일반적으로 액세스 권한이 있는 경우 이벤트 뷰어에서 오류에 대한 자세한 정보를 찾을 수 있습니다.또한 공급자는 machine.config에서 사용자 지정 오류를 재정의하거나 소매 특성을 true(http://msdn.microsoft.com/en-us/library/ms228298(VS.80).aspx) 로 설정하여 사용자 지정 오류가 표시되지 않도록 방지했을 수 있습니다.

제 문제는 제 웹.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>

저도 이런 문제가 있었는데, Apache와 mod_mono를 사용할 때.이러한 상황에 처한 다른 사용자의 경우 새 버전을 강제로 읽도록 web.config를 변경한 후 Apache를 다시 시작해야 합니다.

이 페이지가 계속 표시되는 경우 웹을 통과하기 전에 해당 페이지가 폭발할 가능성이 높습니다.구성

ASP를 확인합니다.Net에는 에 필요한 권한이 있습니다.NetFramework 폴더, IIS 메타베이스 등.당신은 그 ASP를 확인할 방법이 있습니까?네트워크가 올바르게 설치되어 IIS에 올바르게 연결되어 있습니까?

편집: Greg의 의견을 듣고 당신이 게시한 것이 당신의 매우 미니멀한 web.config라고 추측했는데, 더 많은 것이 있습니까?그렇다면 전체 web.config를 게시할 수 있습니까?

사실, 제가 제 웹 앱을 호스팅하면서 알게 된 것은 당신이 로컬 머신에서 개발한 코드가 호스팅 회사가 제공하는 것보다 더 높은 버전이라는 것입니다.관리자 권한이 있는 경우 마이크로소프트 ASP를 변경할 수 있습니다.웹 호스팅 설정에서 NET 버전 지원

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

또한 이 오류가 발생했습니다. 애플리케이션 풀 사용자에게 web.config 파일에 대한 권한이 더 이상 없기 때문입니다.권한을 상실한 이유(이전에는 모든 것이 문제가 없었습니다)는 rar 파일에 사이트의 백업이 있었고 저는 rar에서 사이트로 web.config 백업 버전을 끌어다 놓았기 때문입니다.이로 인해 로그인한 사용자인 나를 제외한 web.config 파일에 대한 모든 권한이 제거된 것 같습니다.

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

저는 같은 문제를 겪었지만 다른 방법으로 해결했습니다.

-

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

32비트 응용 프로그램 사용을 참으로 설정했습니다.

애플리케이션을 다시 시작해 보십시오(삭제하는 것보다 app_offline.htm을 만드는 것이 좋습니다). 그래도 동일한 오류 메시지가 표시되면 web.config에서 customErrors를 한 번만 선언했는지 확인하십시오.web.config의 오류는 응용 프로그램에 이상한 영향을 미칠 수 있습니다.

당신의 web.config에 ø▁in와 같은 특별한 문자가 있습니까?그렇다면 인코딩이 utf-8로 설정되어 있는지 확인합니다.

이 웹 앱은 웹 사이트의 디렉터리 트리에 있는 다른 앱 아래에 설정되어 있습니까?상위 web.config 파일에 다른 설정이 있는지 확인합니다(있는 경우).또한 디렉토리를 IIS에서 응용프로그램 디렉토리로 설정합니다.

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

또한 서버 컴퓨터의 브라우저에서 웹 사이트를 불러올 수 있습니다.저는 ASP를 많이 하지 않습니다.NET 개발, 하지만 나는 사용자 정의 오류는 보안 조치로서 서버에 전체 오류 텍스트만 표시하도록 설정되어 있는 것을 기억합니다.

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

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

저도 같은 문제가 있었는데, 원인은 IIS가 ASP를 실행하고 있었기 때문입니다.NET 1.1 및 필요한 사이트.NET 2.0.

그 오류 메시지는 몇 시간 동안 저를 궤도에서 벗어나게 했을 뿐입니다.

시스템 바로 뒤에 추가해야 합니다.

저는 그것을 노드 끝에 놓고 작동하지 않았습니다.

구성 변환을 수행하는 경우 관련 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의 형식이 올바르지 않을 수도 있습니다.그런 경우에는 한 줄씩 훑어봐야 효과가 있습니다.여기서 규칙을 다시 쓰는 것이 원인인 경우가 많습니다.

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

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

파일 blah가 존재하지 않아서 그 시점에서 오류를 던지고 있었습니다.아직 시스템에 도착하지 않았기 때문입니다.웹 섹션에서 아직 사용자 정의 오류(On)에 대한 서버 기본 설정을 사용하고 있습니다.

위의 해결책들 중 어느 것도 저에게 효과가 없습니다. 제 경우는

나의 웹.config에 이것이 있습니다.

<log4net debug="true">

모든 오류를 제거하거나 응용프로그램 폴더에 있는 오류 로그를 읽습니다.C:\사용자\사용자 이름\source\repos\프로젝트 폴더\logs

언급URL : https://stackoverflow.com/questions/101693/customerrors-mode-off

반응형