2013-05-06 11 views
5

をカバーしていません。 カスタムエラーページは、私はいくつかのカスタムエラーを指定している私の<code>web.config</code>ファイル内のすべてのURLパス

<customErrors mode="RemoteOnly" defaultRedirect="~/Error"> 
    <error statusCode="500" redirect="~/Error" /> 
    <error statusCode="404" redirect="~/NotFound" /> 
</customErrors> 

は今、このよう http://mysite.com/dsflhsdffなどいくつかのリンクは、適切 mysite.com/notfoundにリダイレクトされます。しかし、 https://mysite.com/videoconference/0/0/0のようないくつかのリンクは、私自身のカスタムエラーページではなく、IISエラーページ(ファイルまたはディレクトリが見つかりません)を取得しています。このリンクの例では、 https://scyk.pl/forums/0/0/0は適切な404エラー(私のカスタムエラーページ)を生成します。

ここで何が起こっているか手動でIISカスタムエラーを設定する必要はありますか?もしそうなら、どうしたらいいですか?

答えて

0

ページ呼び出しがasp.netエンジンを通過しない場合、IISはyesを処理します。

setup very easy if you have direct access to the iisでもできますが、このカスタムエラーをサイトのweb.configから直接設定するオプションもあります。ここでは404エラーの例です。で

<system.webServer> 
    <httpErrors> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/PageNotFound.aspx" responseMode="ExecuteURL" /> 
    </httpErrors> 
</system.webServer> 

詳細情報:ASP.NETでも.htmのページのリクエストがあったことを知っていることはありませんので、http://www.iis.net/configreference/system.webserver/httperrors

1

です。 IISはASP.NETをまったく使わずに.htmページを単独で処理します。

あなたのカスタムページは、次のいずれかの方法で表示するために取得することができます:

は、ASP.NETが.htmのページを処理するには、Get:IISでWebサイト/仮想ディレクトリを右クリック - >プロパティ - >ホームディレクトリ/仮想ディレクトリタブ - > "アプリケーション設定"セクションの下の "設定"ボタン - >マッピングを追加します。 IISのカスタムエラーページを設定します。IISで、Webサイト/仮想ディレクトリ - >プロパティ - >カスタムエラータブを右クリック - > 404エラーをエラーページのページに設定します。

あなたはまた、 のApplication_Error方法

例えばであなたのGlobal.asaxファイルでこのエラーを処理することができます

1

void Application_Error(object sender, EventArgs e) 
    { 
     // Code that runs when an unhandled error occurs 
     Exception exc = Server.GetLastError(); 

     // Handle HTTP errors 
     if (exc.GetType() == typeof(HttpException)) 
     { 
      // The Complete Error Handling Example generates 
      // some errors using URLs with "NoCatch" in them; 
      // ignore these here to simulate what would happen 
      // if a global.asax handler were not implemented. 
      /*if (exc.Message.Contains("NoCatch") || exc.Message.Contains("maxUrlLength")) 
       return;*/ 

      //Redirect HTTP errors to HttpError page 
      /*Server.Transfer("HttpErrorPage.aspx");*/ 
     } 
    } 

詳細情報:IISは、いくつかの例では、カスタムエラーページを見つけることができないので、これが起こっている http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/aspnet-error-handling

0

。これは特定の拡張機能で私に起こりましたが、IISマネージャーのエラーページ部分に自分のカスタムエラーページを構成することで、毎回自分のカスタムエラーページを表示することができました。

それを行うにはどのように相続人:あなたのIISマネージャに

移動し、問題のサイトを選択し、IISセクションの下に「エラーページ」と題するアイコンを見つけます。

アイコンをダブルクリックすると、ステータスコードのリストとエラーの原因となる対応ファイルが表示されます。

ケース404にエラーコードがあります(存在しない場合は、[追加...]をクリックして右側のメニューから追加できます)。次に、[編集...]ボタンをクリックします右側のメニューにあります。

次に、表示されたダイアログボックスの[このサイトでURLを実行する]ラジオボタンをクリックします。ここで、ユーザーがリダイレクトされる相対URLを指定します。 [編集]ダイアログボックスのオプションを完了した後

、あなたは再びメインのエラーページの痛みでページを選択したいとしている、これだけの時間をクリックし「編集機能の設定を...」

で表示されたエラーページの設定を編集するには、[ローカル要求の詳細なエラーとリモート要求のカスタムエラーページ]が選択されていることを確認します。また、前の[編集]メニューで入力したページが[エラーページの編集]ダイアログボックスの[デフォルトページ]部分の[パス]フィールドに入力されていることを確認します。最後に、パスタイプを「実行URL」に設定する必要があります

関連する問題