0

同じ応答を介してファイルを送信する前に、応答のコンテンツタイプとヘッダーを設定する単純な「ファイルダウンロード」汎用ハンドラーがあります。

また、global.asaxにResponse.Cache.SetCacheability(HttpCacheability.server)を設定しています。

さまざまなソースから気付いたように、Internet Explorerはこのキャッシュなしの設定が気に入らず、ファイルをダウンロードしようとするとエラーが発生します(要求されたサイトが利用できないか見つかりません)。

.ashxページでこの設定をオーバーライドできるのではないかと思ったので、応答のキャッシュ可能性設定をpublicに変更します。これは問題を解決しませんでした...global.asaxから行を削除すると問題は解決しますが、明らかにサイト全体に影響します。

私のジェネリックハンドラーのためだけにcachabilityを設定する方法はありますか?

乾杯:D

4

1 に答える 1

0

ジェネリックハンドラーに対してリクエストが行われたかどうかを確認し、結果に応じて適切なキャッシュ設定を提供できますか?このようなもの:

public void Application_OnPreRequestHandlerExecute(object sender, EventArgs e)
{
    if (!HttpContext.Current.Request.Url.AbsolutePath.EndsWith("MyHandler.asxh", StringComparison.InvariantCultureIgnoreCase))
    {
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Server);
    }
}
于 2011-02-01T15:27:20.167 に答える