2012-04-02 2 views
1

기본 ASP 응용 프로그램에는 HTTP를 통해 호출 할 수있는 웹 서비스가 포함되어 있습니다. POST 또는 GET. 웹 서비스는 HTTP를 통해 XML 메시지 인 Response.Write를 사용하여 의무를 수행합니다.IIS 7.5 IIS 6.0과 다르게 500 개의 오류 처리

다음은 예입니다.

Response.ContentType = "text/xml" 
Response.Status  = "500 Error" 
Response.Write("<?xml version=""1.0"" ?>") 
Response.Write("<PeelMe>") 
Response.Write("<Error>Your orange was actually blue!</Error>") 
Response.Write("</PeelMe>") 

IIS 6.0에서 응용 프로그램을 호스팅하면 호출자가 XML을 수신하여 구문 분석을 제대로 수행 할 수있었습니다.

그런 다음 IIS 7.5로 전환했습니다.

IIS 6.0에서와 마찬가지로 실제 사용자가 사이트를 탐색하는 동안 오류가 발생했을 때 특정 사용자 지정 텍스트를 브라우저에 렌더링하기 위해 고객 오류 페이지를 "Blah.asp"라고 설정합니다. IIS 7.5로 전환하면 웹 서비스 호출자에게 작성된 500 개의 오류 메시지가 모두 IIS 7.5에서 캡처되어 스레드를 Blah.asp로 리디렉션 한 다음 Blah.asp의 HTML을 호출자에게 다시 쓰게됩니다. 내가 다시 웹 서비스 호출에 500 오류 메시지를 기록 할 때, 나는 그렇게 할 수 있도록 IIS없이, IIS 6.0처럼 행동 IIS 7.5를 얻는 방법

: 여기

내 질문입니다 7.5의 커스텀 에러 처리가 방해 받고 있습니까?

답변

0

asp classic을 asp로 설정하려고 했습니까? 우리는 최근에 많은 업그레이드를 해왔습니다. 끊임없이 7.5 문제가 발생합니다.

앱 풀을 다시 설정하면 문제의 80 %가 해결됩니다.

+0

우리의 시스템 전문가가 귀하의 질문에 대답 : 당신은 당신이 뒤에있는 bevaviour를 얻기 위해 다음과 같은 시도 할 수 내 생각에 그 설정은 클래식 ASP, ASP.NET 응용 프로그램에만 영향을 미치지 않습니다. " – crackedcornjimmy

0

IIS7 이후 web.config는 더 많은 옵션을 제공합니다. "응용 프로그램 풀이 때문에 '클래식'은 ASP.NET 부분을 일으키는 '통합'으로 설정됩니다 말해서

<system.webServer> 
    <httpErrors errorMode="Detailed"> 
     <remove statusCode="500" subStatusCode="-1" /> 
     <error statusCode="500" prefixLanguageFilePath="" path="/[CUSTOMERRORPAGE].asp" responseMode="ExecuteURL" /> 
    </httpErrors> 
</system.webServer> 
+0

이 코드의 기능을 신중하게 설명 할 수 있습니까? – crackedcornjimmy