programing

Windows Azure 웹 사이트가 내 node.js 앱의 404 및 500 오류 페이지를 재정의합니다.

muds 2023. 5. 26. 22:50
반응형

Windows Azure 웹 사이트가 내 node.js 앱의 404 및 500 오류 페이지를 재정의합니다.

Windows Azure 웹 사이트를 사용하여 node.js 응용 프로그램을 호스팅하고 있습니다.지금까지 저의 맞춤형 오류를 제외하고는 모든 것이 훌륭합니다.내 노드 앱에는 사용자 지정 404 및 사용자 지정 500 오류 페이지를 렌더링하는 오류 처리기가 있습니다.그러나 zure에 게시하는 즉시 statusCode를 200을 제외한 다른 항목으로 설정하면 응답이 무시됩니다.

응답에 500 또는 404 statusCode를 전달하지 않으면 이러한 일이 발생하지 않지만 상태 코드가 브라우저에 도달하기를 원합니다.로컬에서 사용자 지정 오류 페이지가 올바르게 표시됩니다.

그러나 zure 웹 사이트에서는 텍스트 한 줄만 반환합니다.

내부 서버 오류가 발생하여 페이지를 표시할 수 없습니다.

사용자 지정 오류가 비활성화된 상태에서 기본 웹.config를 재정의하기 위해 나만의 web.config를 생성하려고 했지만 아무런 효과가 없는 것 같습니다.다음은 제 web.config입니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <customErrors mode="off" />
    </system.web>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="app.js" verb="*" modules="iisnode"/>
        </handlers>
        <rewrite>
            <rules>
                <rule name="StaticContent">
                    <action type="Rewrite" url="public{REQUEST_URI}"/>
                </rule>
                <rule name="DynamicContent">
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
                    </conditions>
                    <action type="Rewrite" url="app.js"/>
                </rule>
            </rules>
        </rewrite>
        <iisnode
            debuggingEnabled="true"
            devErrorsEnabled="true"
            debuggerPathSegment="debug"
            nodeProcessCommandLine="&quot;%programfiles(x86)%\nodejs\node.exe&quot;"
            logDirectory="..\..\LogFiles\nodejs"
            watchedFiles="*.js;iisnode.yml;node_modules\*;views\*.jade;views\*.ejb;routes\*.js" />
    </system.webServer>
</configuration>

저는 잘 모르겠습니다.iisnode(node.js로 요청을 라우트하는 iis의 확장자)는 오류 페이지를 재정의하거나 iis 자체가 원인입니다.좋은 의견이라도 있나?

신경쓰지 마세요. 제가 문제를 발견했습니다.다른 사람이 동일한 문제를 겪고 있는 경우 아래에 다음을 추가하면 됩니다.<system.webServer>web.config:

<httpErrors existingResponse="PassThrough" />

Windows azure에서 호스팅되는 MVC 프로젝트와 유사한 문제가 있었습니다.IIS 아래에서 호스트되는 로컬 컴퓨터에서는 정상적으로 작동하지만 라이브 컴퓨터에서는 "찾는 리소스가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수 없습니다."라는 오류가 발생했습니다.

시스템의 웹 구성에 추가합니다.웹 서버가 내 하루를 저장했습니다.

내 web.config는 다음과 같습니다.

<system.web>
   ***
    <customErrors mode="RemoteOnly" defaultRedirect="~/Error/PageNotFound">
      <error statusCode="404" redirect="~/Error/PageNotFound" />
      <error statusCode="500" redirect="~/Error/ServerError"/>
    </customErrors>
  </system.web>
***
<system.webServer>
    <httpErrors existingResponse="PassThrough" />
</system.webServer>

언급URL : https://stackoverflow.com/questions/15144405/windows-azure-websites-is-overriding-my-404-and-500-error-pages-in-my-node-js-ap

반응형