1

私のweb.configには次のものがあります:

    <customErrors mode="On" defaultRedirect="~/Error.aspx" redirectMode="ResponseRewrite">
        <error statusCode="500" redirect="~/Error.aspx" />
        <error statusCode="404" redirect="~/404.aspx" />
    </customErrors>

しかし、これらの URL では、ファイル拡張子が定義された 2 番目の URL のみが機能し、もう 1 つはブルー スクリーン 404「アプリケーションのサーバー エラー」を返します。

http://127.0.0.1/scirranew/invalidpath

http://127.0.0.1/scirranew/invalidpath.aspx

何か案は?私は ASP.net 4、IIS 7.5 を使用しています。

4

4 に答える 4

5

これを機能させるには、すべての要求を .NET エンジンに渡すように IIS を構成する必要があります。最初の例は明らかに .NET ページを要求していないため、.NET エンジンにルーティングされません。

IIS と .NET のどのバージョンを使用していますか? これが役立つ場合があります。

于 2011-07-01T20:38:26.570 に答える
2

同じweb.configに2つの構成があります

<system.web>
    <customErrors mode="On" defaultRedirect="/error.aspx" redirectMode="ResponseRedirect">
    </customErrors>
</system.web>

customErrors mode="RemoteOnly"も使用できます

<system.webServer>
      <httpErrors errorMode="Custom">
          <remove statusCode="401" subStatusCode="-1" />
          <remove statusCode="403" subStatusCode="-1" />
          <remove statusCode="404" subStatusCode="-1" />
          <remove statusCode="500" subStatusCode="-1" />
          <error statusCode="401" path="/401.aspx" responseMode="ExecuteURL" />
          <error statusCode="403" path="/403.aspx" responseMode="ExecuteURL" />
          <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" />
          <error statusCode="500" path="/500.aspx" responseMode="ExecuteURL" />
      </httpErrors>
</system.webServer>

path= "/404.aspx"は、path= "~/404.aspx"または path= "404.aspx " とは異なります。

于 2014-08-26T22:04:22.170 に答える
2

ASP.Net は、IIS に登録されているファイル拡張子に対してのみ呼び出されます。そのため、IISに移動するinvalidpathと、その名前に一致するファイルがチェックされ、次にフォルダーがチェックされます。どちらも存在しない場合は、IIS で指定された 404 ページが呼び出されます。

IIS のバージョンに応じて、いくつかの異なるオプションがあります。IIS6 では、IIS マネージャー内から 404 ページを手動で設定する必要があります。IIS7 以降では、web.config を使用してsystem.webServerセクションを変更できます: http://www.iis.net/ConfigReference/system.webServer/httpErrors

于 2011-07-01T20:40:32.790 に答える
1

また、可能であれば、エラーページにはプレーンな html ページを使用することをお勧めします。より信頼性が高いからです。たとえば、.net セッション ストアが利用できない場合 (たとえば、セッション データベースがダウンしている場合)、エラー ページは無限にエラー ページにリダイレクトしようとします。Html ページは .net サブシステムへの依存度が低いため、障害が発生し始めたときに機能する可能性が高くなります。

于 2012-07-17T11:03:09.757 に答える