2011-11-28 2 views
5

503 서비스를 사용할 수없는 오류가 발생하면 간단한 html 페이지를 사용하려고합니다.web.config의 httperrors

난의 Web.config의 system.webservers이 NT 노력

<httpErrors errorMode="Custom"> 
    <remove statuscode="503" substatuscode="-1"> 
    <error statuscode="503" responseMode="File" path="Views/Shared/IISError.htm"> 
</httpErrors> 

아래 사용하고 있습니다. 응용 프로그램을 중지해도 IIS 기본 페이지가 표시됩니다.

mvc3, 면도기 응용 프로그램을 사용하고 있습니다.

+1

시도'<의 httpErrors errorMode = "상세">' –

답변

2

질문은 VisualStudio Development Server 또는 IIS7 Express를 사용하고 있습니까? 의 httpErrors은 IIS7에 의해 처리되는 새로운 구조이기 때문에

당신은 카시니 (VSD를)를 사용하는 경우 다음 당신은

<customErrors mode="On" > 
    <error statusCode="503" redirect="/Views/Shared/Error.htm"/> 
</customErrors> 

으로 시도해야합니다. 당신은 몇 가지 추가 정보를 찾을 수 있습니다 What is the difference between customErrors and httpErrors?http://www.iis.net/ConfigReference/system.webServer/httpErrors

+0

내가 어떻게 당신이 503을 던져 IIS지고 IIS 7.0 –

+0

을 사용하고 있습니다 ? 응용 프로그램을 통해 작업하는 경우 Asp.Net 처리기를 통과합니다. httpErrors 지시문은 Asp.Net을 통과하지 않는 내용입니다. – torm

+0

IIS에서 내 응용 프로그램 풀을 중지하려고합니다. 이것은 내 페이지 대신에 기본 503 페이지를 보여줍니다. –

7

그것은이 알아낼 걸 렸어요을 ...하지만 내가 당신을 도울 것 같아요 : 모든

먼저 IIS 7에서 오류를 구성 할

: 그러나 당신이 그런 경우가 있다면, 다음 단계를 수행 httpErrors 부분을 무시할 수 없음을 나타내는 오류를 수신 할 수 있습니다,

<system.webServer> 
    <httpErrors existingResponse="Replace" defaultResponseMode="Redirect" errorMode="Custom"> 
     <remove statusCode="503"/> 
     <error statusCode="503" responseMode="Redirect" path="Views/Shared/IISError.htm"/>   
    </httpErrors> 
    </system.webServer> 

이 구성 작동 : 그것은 다음과 같은 섹션을 사용 할 필요가

  1. 열고 C:\Windows\System32\inetsrv\config\applicationHost.config

  2. 변경 :

    <section name="httpErrors" overrideModeDefault="Deny" /> 
    

    사람 :

    <section name="httpErrors" overrideModeDefault="Allow" /> 
    
1

의견 중 하나를 기반으로 앱 풀을 중지하는 것처럼 나타납니다 .

응용 프로그램 풀을 중지하는 경우 web.config에서 사용자 지정 오류를 설정할 수 없습니다. IIS에서이 작업을 수행해야합니다.

1

Mvc 5.1.1 및 IIS 7.5에서 파일 응답 모드의 하위 폴더를 나타내려면 백 슬래시가 필요합니다.

C 번호 :

[HttpGet] 
[AllowAnonymous] 
public ActionResult Login() 
{ 
    try 
    { 
     var allowLogin = false; 

     if(allowLogin == false) 
      return new HttpStatusCodeResult(403); 
    } 
} 

의 Web.config :

<system.web> 
    <!--customErrors tag is not required --> 
</system.web> 
<httpErrors errorMode="Custom" existingResponse="Replace" defaultResponseMode="File" > 
    <remove statusCode="400" subStatusCode="-1" /> 
    <remove statusCode="401" subStatusCode="-1" /> 
    <remove statusCode="403" subStatusCode="6" /> 
    <remove statusCode="403" subStatusCode="-1" /> 
    <remove statusCode="503" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <clear/> 
    <error statusCode="400" subStatusCode="-1" path="ErrorPages\400.html" /> 
    <error statusCode="401" subStatusCode="-1" path="ErrorPages\401.html" /> 
    <error statusCode="403" subStatusCode="6" path="ErrorPages\Restrict.html" /> 
    <error statusCode="403" subStatusCode="-1" path="ErrorPages\403.html" /> 
    <error statusCode="503" subStatusCode="-1" path="ErrorPages\503.html" /> 
    <error statusCode="500" subStatusCode="-1" path="ErrorPages\500.html" /> 
</httpErrors>