IIS サーバーに XML ファイルを保存しています。実行のいくつかの段階で、アプリケーションはこのファイルを取得します。基本的にはサーバーに戻り、ファイルを再度取得します。問題は、ファイルがブラウザによってキャッシュされたために返されないため、アプリケーションでエラーが発生することです。304 エラーを返します。URL で変化する ID を渡すと、キャッシュされないことがわかっています。問題は、このファイルの場所が固定されており、URL に何か他のものを入れると見つからないことです。それで、これをエレガントに解決する方法はありますか?クライアントのキャッシュ設定を変更することはできません。WebClient オブジェクトを使用して、ファイルを非同期的に要求します。ありがとう!
3 に答える
1
304 はエラーではなく、HTTP 応答コードの仕様によると「変更されていません」という表示です。代わりに 200 を取得するために、クエリ文字列に乱数を 1 つまたは 2 つ追加してみてください。
于 2013-06-19T20:49:53.033 に答える
0
条件付き GET リクエストを行うために、リクエストに If-Modified-Since ヘッダーを設定してみてください。次に、Not Modified (HTTP 304) ステータス コードを確認し、変更されている場合は何かを行います。それ以外の場合、ブラウザーはキャッシュされたバージョンを使用します。
この手法に関するブログ エントリは次のとおり です。コードでの If-Modified-Since ヘッダーの設定
于 2013-06-19T20:56:23.933 に答える
-1
初めて XML ファイルをダウンロードしたとき、IIS の設定により、ファイルをキャッシュしてもよいことがクライアントに伝えられました。XML ファイルを含むディレクトリのキャッシュ設定を変更して、何もキャッシュしないようにクライアントに指示することができます。
例:
<configuration>
<location path="myXmlFiles">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
</configuration>
于 2013-06-19T20:55:29.943 に答える