0

WebClientを使用してRESTサービスを要求する小さなSilverLightアプリケーションに取り組んでいます。これによれば:

http://msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx

「クライアントHTTP」処理を使用する場合は、キャッシュを設定しないでください。

私が呼び出しているRESTサービスはETagを使用しているため、キャッシュが設定されていない場合、サービスへの2回目の呼び出しにIf-None-Matchヘッダーが含まれるとは思いませんか?

また、RESTサービスが「304」(NotModified)を返す場合でも、データがキャッシュから返されることを示すデータを取得します。

また、RESTサービスは「Vary」ヘッダーを「Accept」に設定します(したがって、キャッシュキーを生成するときにAcceptヘッダーを考慮に入れる必要があります)が、これが機能しているようには見えません。

ですから、キャッシングがそこにあるかどうかにかかわらず、私は少し自信があります....それは途中にあるようです...

誰かが明確にすることができますか?

TIA

ソーレン

4

1 に答える 1

0

WCF サービスでは ETag を使用しないことをお勧めします。IIS では、サービスまたはサービスを含むディレクトリに、コンテンツがすぐに期限切れになるように設定する HTTP 応答ヘッダーを含める必要があります。これにより、クライアントでキャッシュされる可能性がなくなります。このようにして、サービスを呼び出しても、サーバーから HTTP 304 応答が返されることはありません。

于 2012-04-19T21:04:11.713 に答える