またまたTwitterマーキーネタ。
5分おきに実行されるトレンドの自動更新がなぜかうまく機能していないようなので、DispactherTimerを只のTimerに変えてみたり、PHPプロキシ側で有効期間のヘッダを追加してみたりしたのですが、状況変わらず。
タイマ処理自体は動いているようだし、リクエスト処理も正しく呼ばれているようなのですが、よく分からないのは、オンブラウザでは問題なくて、ブラウザ外実行時のみダメってところ。
結局、散々いじり回した挙句に辿りついた答えは、電力使用率ガジェットのときにもハマったWebClientのキャッシュ絡みの挙動。
ググると同様の事象が報告されていますが、なぜかWebClientによるリクエストがサーバまで届かずにキャッシングされている情報を返して「やったふり」をする、という現象が発生しとりました。
スマートな解決法が分からないので、電力使用率ガジェットと同様、「APIコール時のURL末尾にランダム文字列をパラメータとしてくっつけてユニークな形にしてキャッシュが使われないようにする」、という強引な形で回避しましたが、もはや自分の中では、これをSilverlightでWebサービス使うときのデフォルト実装にせざるをえない感じです。
Silverlight3の頃にWCF使ったときは問題なかった気がしますが、もしかしてクロスドメインアクセスが関係してるのかなぁ。
# 全然関係ないけど、サイトのCSS少しいじるかなぁ…
# どう考えても字がデカすぎるでしょ…
コメントを残す