1

アプリケーションのディレクトリ (App_Code、App_Browsers など) のカスタム エラーはどこでセットアップできますか? 私はすでに web.config で customErrors を構成しており、期待どおりに動作します。例えば、

http://www.mysite.com/bla.aspx > 404 ページにリダイレクト

しかし

http://www.mysite.com/App_Code/ > 「指定されたファイルが見つかりません」と表示されます。

私のサイトには物理的な App_Code ディレクトリがありません。これは IIS で変更できますか?

4

4 に答える 4

1

保護されたフォルダーからコンテンツをサーバーに送信しようとしています... ??

探している素敵なエラーを取得するには、これらのフォルダーへのアクセスを許可する必要があると思います...

http://www.webdavsystem.com/server/documentation/hosting_iis_asp_net/protected_folders

そうは言っても...これらのフォルダーが保護されているのには理由があります。

IIS が保護されたフォルダーに提供するために必要なものは決して入れません。

しかし、何かをするのには常に理由がありますか?私は短い人生でいくつかのルールを破りました:)

アップデート:

これをローカルで試したときにこれを見つけました:http://support.microsoft.com/kb/942047/

これらの予約済みディレクトリは特別な 404 をスローするように見えます。これらのディレクトリへのサービスを開かずに、IIS を 404.8 タイプをターゲットにすることができる可能性があります。

于 2009-07-14T16:12:40.007 に答える
1

あなたが話している要求が ASP.NET アプリケーションに到達することはないため、IIS 自体でエラー ページを設定する必要があると思います。最初の例が機能する理由は、IIS が .ASPX 拡張子を認識して ASP.NET に転送するためです。

于 2008-11-16T07:42:02.637 に答える
0

One way is to provide a redirect in the global.asax file:

 void Application_Error(object sender, EventArgs e) 
{
    //uncomment this to narrow down 'helpful' microsoft messages
    //HttpRequest request = ((HttpApplication)sender).Context.Request; 


    Exception ex = Server.GetLastError();
    //ErrorManager is a custom error handling module
    ErrorManager.ProcessError(ex);
    Response.Redirect("~/error.aspx?error=" + HttpUtility.UrlEncode(ex.Message), true);
}

{ On a side note, I was getting an exception that I just couldn't track down - it just said 'file not found' but didn't say which file was missing. It turned out to be a broken image reference in a css file - breaking on line two of the code above helped identify the missing file }

于 2008-11-14T20:55:37.590 に答える
0

IIS にワイルドカード マッピングを追加して、ASP.net を介してすべての要求を実行すると、Global.asax を使用してエラーを処理できます。

ここから撮影:

IIS 6.0 でワイルドカード スクリプト マップを作成するには、次の手順に従います。

  • Web サイトを右クリックし、[プロパティ] を選択します
  • [ホーム ディレクトリ] タブを選択します
  • [構成] ボタンをクリックします。
  • [マッピング] タブを選択します
  • [挿入] ボタンをクリックします (図 4 を参照)。
  • aspnet_isapi.dll へのパスを [実行可能ファイル] フィールドに貼り付けます (.aspx ファイルのスクリプト マップからこのパスをコピーできます)。
  • ファイルが存在することを確認するというラベルの付いたチェックボックスをオフにします
  • [OK] ボタンをクリックします。
于 2009-07-14T16:04:18.370 に答える