8

Cassini を使用していましたが、IIS Express に切り替えました。私の最初の考えは、次の<system.web>ようなものを除くすべてを削除できるということでした:

<authentication mode="Forms">
  <forms loginUrl="/" />
</authentication>

私の以前customErrorsは次のように設定されていました:

<customErrors mode="On" defaultRedirect="/ServerError">
  <error statusCode="404" redirect="/NotFound" />
</customErrors>

customErrorsIISExpress に切り替えたときに、この要素を削除しました。これで、404 は私の素敵な "NotFound" ページにリダイレクトされなくなりました。

私のサイトで使用されている AppPool は、Clr4IntegratedAppPoolClassic を使用していないことを知らせてくれます。

system.webIIS 7.5 が使用しているのに、IISExpress が依存しているのはなぜsystem.webServerですか?

4

1 に答える 1

7

さて、私はいくつかの異なることを試しました:

  • ここに記載されているように変更existingResponseさ れましたPassThrough

    <httpErrors errorMode="Custom" existingResponse="Replace">

いいえ!

  • ここのコメントに記載されているようにTrySkipIisCustomErrors=を設定しますfalse

ノッタ!

に変更するだけで動作するようになりexistingResponseましたReplace

  • 誰かわかったね!

これはsystem.webServer今どのように見えるかです:

<httpErrors errorMode="Custom" existingResponse="Replace">
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" path="/NotFound" responseMode="ExecuteURL" />
        <remove statusCode="500" subStatusCode="-1" />
        <error statusCode="500" path="/ServerError" responseMode="ExecuteURL" />
    </httpErrors>

このソリューションが意味をなさない理由

置換 – この値はカスタム エラー モジュールを作成し、常にエラー情報をカスタム エラー モジュールによって生成されたテキストに置き換えます。existingResponse が「置換」に設定されている場合、Asp.Net/WCF によって生成されたエラー/例外は IIS7 エラーに置き換えられます。

http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx

于 2012-03-04T04:28:19.833 に答える