none
プロキシサーバを介したClickOnceの利用 RRS feed

  • 質問

  • お世話になっています。
    いつもはReadOnlyで大変参考にしています。

    .NET Framework3.5の環境で、XMLWebサービスを利用したClickOnceアプリを作成しようとしています。

    クライアント部分(ClickOnce配信部分)の事前検証中なのですが、アプリのアップデートがうまくできなくて困っています。

    うまくできていないというのは、以下の状況を指します。
    ・ClickOnceアプリの初回インストールは通常通り可能
    ・ClickOnceアプリのバージョンをあげたものをWebサーバ(IIS)に更新配置して、ClickOnceアプリを再起動してもアプリは更新されない(場合がある)。
     (起動時に更新モジュールをチェックする設定になっています。)
    ・同様に手動で更新するように、System.Deployment.Application.ApplicationDeploymentクラスのCheckForUpdate、Updateメソッドを使用しても更新対象が見つからない(場合がある)。

    検証をしていた環境は、
    ・ClickOnceアプリを配置したWebサーバは、通常のインターネットに公開されている場所
    ・ClickOnceアプリをインストールして更新したいクライアントは、企業内LANの中。
     外部のWebにアクセスするにはプロキシサーバが介在しています。
     この際、プロキシサーバに対する認証はありません。

    ためしに、ノートPCとモバイル用通信カードを使用して、プロキシサーバが介在しない状態で
    試したところ、期待通りの動作(必ず更新される)を確認できました。

    ここから想像すると、
    うまくできていない環境では、Webにアクセスするためのプロキシサーバに、古い*.applicationファイルが
    キャッシュされていて、更新対象が存在することをうまく認識できないのではないかと考えています。

    このようなケースをWebで探してみましたが、同じようなケースは見つかりませんでした。
    何かほかの要素が原因として存在しているのでしょうか?
    また、プロキシのキャッシュが問題である場合、これを回避する方法(HTMLでいうところのmetaタグで"Pragma no-chache"を指定するなど)
    はClickOnceに存在するのでしょうか?

    何か参考になるご意見、資料などありますでしょうか?
    よろしくお願いします。


    2008年8月1日 6:48

すべての返信

  • 同じような問題に遭遇した経験があります。ClickOnce は、現状、統合Windows認証および匿名認証にのみ対応しています。

    その他の認証方式ではマニフェストを正しく読み込めません。

    認証を行っていない、ということですから参考にならないかも知れませんが、プロキシサーバを使用しないと正常に動作するとのことですから、認証関係の部分を再度確認してみてはいかがでしょうか?可能であるなら、プロキシサーバから除外するように設定するしかないと思います。
    2008年8月1日 7:07
  • GX999さん、

    返信ありがとうございます。

     

    今回、困っているのは、プロキシサーバが個別に認証をするからではなく(今回はプロキシサーバは認証をしません)、

    最新の*.applicationファイルを取得できない(古いファイルしか取得できていない)という内容で、プロキシサーバ上に*applicationファイルのキャッシュが残っているのではないか?という推測をしています。

     

    GX999さんに頂いた情報ですが、認証を行うプロキシサーバには既に(.NET Framework2.0のHotFix)対応しているようです。

    http://support.microsoft.com/kb/917952/ja

    # 現時点では、認証を行うプロキシサーバが近くに無いので試してはいないのですが。

     

    アプリケーションの作りこみで回避できないかを模索中です。

    また何かわかりましたらここに記載します。

     

    2008年8月1日 23:24