2009-03-01 4 views
4

この質問has been asked beforeの最新バージョンを取得するのではなく、1)ユーザーは2)はそれらのどれもが他のものより優れて際立っていない答えを受け入れたことはありません(投票ワイズ)および3)アスカーは持っているようですそれを忘れてしまった。だから私はもう一度尋ねるつもりだから、私は受け入れられた答えを得ることができます。スレッドのユーザーの中には、解決策のいくつかがうまくいかないと言われている人もいます。場所を混乱させて申し訳ありませんが、私はこれの底に到達することを約束します。力FirefoxがSilverlightのアプリ

先日、FirefoxでSilverlightアプリを見ていたときにこの問題が発生しました。私はイメージの場所を変更し、移動しませんでした。私はそれが間違っていると思ったが、その後IE7を見て、イメージは適切な場所にあった。 Firefoxがファイルのキャッシュされたバージョンを表示していたことがわかります。私が行った変更は現れなかった。

これは大きな問題です:私は私のアプリを変更した場合、どのように私は私のSilverlightアプリの最新バージョンを確認するために、エンドユーザーに強制することができます(のは、それが緊急タイプミスの修正だとしましょうか)? isolated storage (Heuer's blog)は本当にサーバー側からの更新を強制する唯一の方法ですか? Firefoxのキャッシュをクリアすることは、プッシュアップデートでは機能しません。エンドユーザーが何もしなくても更新を反映する必要があります。

更新:Dino Espositoは、特にResponseオブジェクトのプロパティを使用して有効期限、これを制御に関するいくつかのアイデアを持っています。まだ試してみる機会がありませんでした。

答えて

1

まず、すべてのレイアウトやコードの変更後にアプリケーションをビルドする必要があります。 SilverlightはHTMLではなく、ローカルで実行されるコードです。

第二に、これを実際のソリューション:

  1. page.xaml負荷は、
  2. Webサービスは、Firefoxを検出した基本的なページに座っているWebサービスの非同期をキックオフ
  3. Firefoxは、言うならば応答は、それがすぐに

    [OperationContract] 
    public bool DetectFirefox() 
    { 
        if ((HttpContext.Current.Request.Browser.Browser == "Firefox") && 
         ((HttpContext.Current.Request.Browser.MajorVersion >= 2))) 
        { 
         HttpContext.Current.Response.Expires = -1; 
        } 
        return true; 
    } 
    
期限が切れていること

ここで唯一の注意点は、コードを入力する前にコードを追加する必要があることです。それ以外の場合、FF3は応答の有効期限のない古いバージョンのコードを実行します。

2

バージョン番号またはタイムスタンプをファイル名にエンコードできますか?そうすれば、ページが変わると、Firefoxは完全に異なるリソースを指していることに気付き、それをリロードします。

+0

この回答は他の質問の答えの1つであり、おそらく最も良い解決策です。 URLを変更すると、ブラウザには新しいアプリをダウンロードするしかありません。 – Kibbee

+0

コード内のファイル名を変更しますか?うーん、私はそれが私がしなければならないことではないと思う... – jcollum

関連する問題