1

ユーザーがファイルをダウンロードするためのリンクを提供するグリッドがあります。ファイルはアプリケーションの外部に保存され、パス参照はデータベースから読み取られ、要求された各ファイルを処理するために HTTP ハンドラー (*.ashx) が使用されます。ただし、存在しないファイルを指すデータベース エントリが存在する可能性があります。私はFileNotFoundException.

最初のアイデアは、応答に標準の 404 コードを設定することです。それが私が今行っていることです。

ファイルの欠落に関する通知 (jQuery) を表示するのがより便利な方法ですが、ファイルのダウンロードは AJAX で行われないため、これには 2 段階のプロセスが必要です。クライアント側の onclick ハンドラーが Web サービス メソッドを呼び出して、ファイルが存在し、存在しない場合は、クリックをキャンセルし (false を返す)、わかりやすいメッセージをユーザーに表示します。ただし、ファイルが存在する場合は、通常の実行に進みます。しかし、これによりさらに別のサーバー呼び出しが追加されます。

同様の問題に対処しましたか?どのように解決しましたか?

明確化 - アプリケーションは ASP.NET 2.0 で構築され、jQuery を使用して Web サービス メソッドを呼び出します。

4

1 に答える 1

1

パウエル、あなたはすでにあなたの質問に答えたようです...

...(サポートに連絡できるようにするため)...

上記のことを述べることにより、ディスク上に存在しないファイルをユーザーに通知し、サポートオフィスに連絡する方法に関する情報をユーザーに提供するカスタム404ページを作成することをお勧めします。

ファイルを処理するためのHTTPハンドラーを作成しましたが、ファイルがディスク上に存在しない場合は、404応答を返します。404応答がスローされた場合にカスタムページを表示するようにIISを設定しました(エラー500についても同じことを行います)。

これがあなたのニーズに合った解決策を見つけるのに役立ち、幸運を祈っています!

于 2009-03-04T11:35:38.973 に答える