단일 'app_offline.htm'파일이있는 웹 사이트가 있습니다. 어떻게하면 기본 상태 (200) 대신 특정 상태 코드 (예 : 209)를 반환하도록 IIS를 구성 할 수 있습니까?IIS의 특정 리소스에 대한 사용자 지정 http 상태 코드
답변
IIS는 웹 사이트의 루트에 'app_offline.htm'이라는 파일을 특수 처리하므로 파일 이름을 변경하지 않으면이 제안이 작동하지 않을 수 있습니다. 하지만, 여기 어쨌든 ...
당신은 이것을 위해 HttpHandler를 사용할 수 있습니다. web.config에 다음과 같이 추가하십시오.
<add name="app_offline_GET" path="app_offline.htm" verb="GET" type="namespace.classname,dllname" />
분명히 'type'속성에 적절한 정보로 대체하십시오. 이 같은 HttpHandler를에서
, 무언가 :public void ProcessRequest(HttpContext context) {
context.Response.WriteFile("app_offline.htm");
context.Response.StatusCode = 209;
context.Response.StatusDescription = "whatever";
}
IIS URL Rewrite Module를 사용할 수 ASP.Net의 'app_offline.htm'기능을 사용하는 대신, 그것은 huge bag of tricks 및 설정 사용자 지정 응답이있다 코드 중 하나입니다.
페이지의 콘텐츠가 중요하지 않은 경우 응답 코드 만 사용하고 해당 모듈을 사용하면 규칙 코드를 사용하여 빈 응답을 요청으로 반환하는 규칙을 구성 할 수 있습니다 . 이 같은 무언가로 당신의 Web.config에서 실현됩니다
:<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="app_offline" stopProcessing="true">
<match url=".*" />
<action type="CustomResponse" statusCode="209" statusReason="System unavailable" statusDescription="The site is currently down for maintenance, or something." />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
작동하지 않습니다. 지금까지 요청이 ASP.NET 파이프 라인에 들어가기 전에 모듈이 작동하는 것으로 알고 있습니다. 나는 전혀 성취하기가 불가능하다고 생각하기 시작한다. ( – UserControl
예는 내가 ASP.Net에 전달하지 않고 209 코드를 사용하여 빈 응답을 반환함으로써 요청을 처리 할 것이다. 무엇을 찾고 있습니까? – woodysan
ASP.NET은 항상 들어오는 모든 요청에 대해 200 코드로 app_offline.htm의 내용을 반환합니다.이 코드를 덮어 써야합니다 (사용자 지정 NLB 시나리오). – UserControl
상태 코드를 기반으로 특정 콘텐츠를 표시하려면, 당신은 내용을 응답이 상태 코드를 설정할 수 및 매핑 할 수 있습니다 것은 기반 쇼 httpErrors 섹션의 코드. 보존의 이익을 위해이 게시물 https://serverfault.com/questions/483145/how-to-add-a-site-wide-downtime-error-message-in-iis-with-a-custom-503-error-co
의 예를 참조하십시오, 나는 아래의 예를 복제합니다 :이 작동하지 않습니다
<system.webServer>
...
<rewrite>
<rules>
<rule name="SiteDown" stopProcessing="true">
<match url=".*" />
<action type="CustomResponse" statusCode="503" statusReason="Down for maintenance" statusDescription="will be back up soon" />
</rule>
</rules>
</rewrite>
<httpErrors existingResponse="Auto" errorMode="Custom" defaultResponseMode="File">
<remove statusCode="503" subStatusCode="-1" />
<error statusCode="503" path="503.html" />
</httpErrors>
</system.webServer>
- 1. 활성 리소스에 대한 사용자 지정 매개 변수
- 2. 사용자 지정 http 반환 코드
- 3. HTTP 상태 코드 양식을 반환하는 방법 사용자 지정 모델 바인더
- 4. http 상태 코드 200
- 5. 적합한 HTTP 상태 코드
- 6. HTTP 상태 코드
- 7. "더 많은 사용자 입력하십시오."에 대한 HTTP 상태 코드
- 8. Http 상태 코드 413
- 9. 리소스에 대한 WPF 코드 숨김?
- 10. 누락 된 인증에 대한 HTTP 상태 코드
- 11. '로드 중'에 대한 HTTP 상태 코드
- 12. 401.2 상태 코드 사용자 지정 페이지
- 13. Response.Redirect HTTP 상태 코드
- 14. 502 HTTP 상태 코드
- 15. HTTP 1xx 상태 코드
- 16. IIS의 특정 사용자에 대한 파일 액세스 제한
- 17. IIS의 모든 오류에 대한 사용자 지정 오류 페이지 표시
- 18. 정적 리소스에 대한 HTTP MVC 요청은 사용자 정의 서블릿에서 처리됩니다.
- 19. IIS의 사용자 지정 사전 처리기 설정
- 20. WCF REST 메서드에서 사용자 지정 HTTP 상태 코드를 만들려면 어떻게해야합니까?
- 21. 향후 리소스에 적합한 HTTP 반환 코드 선택
- 22. WCF REST 메서드에서 사용자 지정 HTTP 상태 코드를 반환하려면 어떻게해야합니까?
- 23. 봄과 편안한 웹 서비스가있는 사용자 정의 HTTP 상태 코드
- 24. 플라스크의 템플릿 및 정적 리소스에 대한 사용자 지정 위치
- 25. 레일 리소스에 대한 활성 관리 사용자 지정 쿼리
- 26. HTTP 상태 코드 : HTTP : (401) GCMDemo
- 27. HTTP 상태 코드는 특정 자원의
- 28. 레일에서 HTTP 상태 코드 확인
- 29. NSMutableURLRequest http 상태 코드 413
- 30. http 하위 상태 코드 생성
를, IIS는 여전히 "503 서비스를 사용할 수 없음"을 반환합니다. 그리고 핸들러가 관리되기 때문에 올바르지 만 'app_offline.htm'은 새 요청을 처리하지 않도록 명시 적으로 알려서 코드에 부딪히지 않기 때문입니다. – UserControl
상황에 따라 파일 이름을 변경할 수 있습니까? 그렇지 않은 경우 HttpHandler 대신 HttpModule이 일을 처리하기 위해 처리 시퀀스에서 일찍 시작합니다. – Ray