2009-03-05 11 views
10

私はIIS6、ASP.NET、VS2008で作業しています。 Webサイトは、カスタムエラーハンドラを使用して404エラーを捕捉し、代替ページを提供します。フォームのURLを提示する場合:IIS 404カスタムエラーが正常に動作しない

http://srv/crimson/articles/index

すべてが完璧に動作します。しかし、フォームのURL: '/クリムゾン' アプリケーションで

サーバーエラー:blog.aspxが存在しない

http://srv/crimson/blog.aspx

は、次のメッセージで失敗します。説明:HTTP 404 ...

私が試してデバッグすると、私の404ハンドラのブレークポイントのどれもヒットしません。だから、何かが早く要求を受け入れているようです。どこ?私のハンドラにリクエストを渡す方法は?

編集 答えた人に感謝しますが、それらのアイデアのどれも働かなかった。私は別の方法で問題を攻撃することに決めました。

答えて

10

IIS6で:

  • オープン "プロパティ" あなたのウェブサイトのための
  • を設定」をクリックし
  • "ホームディレクトリ" タブに移動します"
  • 拡張子" .aspx "を探します
  • クリックこの程度

編集

そして、何を "というファイルが存在することを確認してください" と言うチェックボックスをチェック

  • "編集" 上:[リモート「は http://msdn.microsoft.com/en-us/library/h0hfz6fc(VS.80).aspx

    <customErrors defaultRedirect="sorry.htm" mode="On"> 
        <error statusCode="404" redirect="NotFound.aspx"/> 
    </customErrors> 
    

    を'は、カスタムエラーがリモートクライアントにのみ表示され、ASP.NETエラーがローカルホストに表示されることを指定します。

  • 1

    ASP.Netには独自のエラー設定があります。

    仮想ディレクトリ(Webアプリケーション)のASP.Net構成に移動し、[ASP.Net] - > [構成の編集] - > [カスタムエラー]を右クリックします。

    +0

    あなたは何を意味するのかよく分かりません。私は仮想ディレクトリ右クリック - >プロパティ - >カスタムエラーでカスタムエラーを設定します。それがうまくいくはずですが、そうではありません。あなたが何かを意味するなら、私はそれを見つけることができません。 – Jon

    6

    ええと、Assafは正しいですが、彼の答えに追加するには、いくつかのコードを投稿する必要があります。

    はい、Assafは、web.configで設定されたASP.NET独自のエラー処理機能を提供しています。これは、IIS Adminスナップインを使用して管理することも、web.configファイルで直接管理することもできます。

    あなたが持っている必要があり<のsystem.web >要素内:

    <customErrors defaultRedirect="sorry.htm" mode="RemoteOnly"> 
        <error statusCode="404" redirect="NotFound.aspx"/> 
    </customErrors> 
    

    あなたは、各HTTPエラーコードのために別のページを設定する、またはデフォルトのリダイレクトがそれらすべてを処理させることができます。

    これらのエラーページを実際にに設定する必要があることがわかります。 IISカスタムエラーとASP.NET設定の両方があります。そうしないと、このような状況になります。 404などは、カスタマイズしていないデフォルトを使用します。

    検索エンジンなどが正しく処理するためには、カスタム404ページが実際に404ヘッダーを返すようにする必要があります。

    あなたはこれを試すたいかもしれません
    Response.StatusCode = 404; 
    Response.StatusDescription = "Not found"; 
    
    0

    多分、あなたがリダイレクトされているので、404はトリガーされません。最初はこの500エラーに集中するかもしれません。

    関連する問題