ClickOnceは.NET Framework 2.0で新たに登場した機能であるが、その仕様にはいまひとつ分かりにくい(洗練されていない?)部分がある。このことで何らかのトラブルが発生する可能性があるので、ここでその一部を紹介しておこう。
●更新時に[スキップ]を選択すると……
アプリケーションのアップデートの際、ユーザーに更新の許可を求めるためのダイアログが表示されるが、ここで[スキップ]を選択した場合、以後7日間はこのダイアログが表示されなくなる。この7日間という期日は変更することができない。
いったんスキップした更新を、期日を待たずに実行するには、[スタート]メニューに登録されたショートカット経由ではなく、Webページ上のハイパーリンクからClickOnceアプリを起動する(つまり「http://……/〜.application」を実行する)必要がある。
ちなみに更新確認のダイアログで[スキップ]ではなくタイトルバー右側にある[×]ボタンで閉じた場合、7日間ダイアログ非表示の設定は行われない(ClickOnceアプリの次回起動時に再び更新確認のダイアログが表示される)。
●ユーザーがロールバックを行うと……
ユーザーがClickOnceアプリを例えばバージョン「1.0.0.1」から「1.0.0.0」にロールバックした場合(ロールバックについては「第1回 ClickOnceの基本動作を見てみよう」を参照)、再び(ロールバック前の)「1.0.0.1」へ更新するための更新確認のダイアログは以後表示されなくなる。
これはClickOnceが、ロールバック前のバージョン(1.0.0.1)を利用できないバージョンとして、ローカルに持つブラックリストに載せるからだ。もしさらに新しいバージョン(例えば1.0.0.2)がWebサーバにアップロードされれば、そのバージョンへアップロードするための更新確認ダイアログは表示される。
ロールバック前のバージョン(1.0.0.1)に再びアップデートしたい場合には、先ほどと同じように、Webページ上のハイパーリンクからClickOnceアプリを起動すればよい。
●トラブルシューティングについて
これらのほかでClickOnceの配布・更新時に何らかのトラブルがあった場合は、まずは次のサイトを参考にしてほしい。
「配置エラー メッセージ」のページは、左のツリーに表示されている項目の中に、該当するエラー・メッセージがないか調べてみるとよい。各ページには解決策が提示されているので参考になるだろう。
最後に、ClickOnceアプリのユーザー数の増大に対処する方法について簡単に説明しよう。
ClickOnceアプリのユーザーが増大し、その大規模なユーザーに対して一斉にClickOnceアプリを配布・更新するとなると、サーバの台数を増やして(いわゆる「スケールアウト」によって)Webサーバに対する負荷に対処したり、ネットワーク帯域幅をより広いものに切り替えて(あるいは前述のHTTP圧縮により通信データそのものを小さくして)増大するネットワーク・トラフィックに対処したりする必要が出てくる。
ただしClickOnceアプリの配布の場合、単に静的ファイルをダウンロードしてもらうだけなので、ASP.NETアプリケーションなどを高速に動かすために必要となるような、サーバ自体の強力なCPU性能は求められない。従って、サーバの増強(すなわち「スケールアップ」)はさほど必要とならないだろう。
なお、ClickOnceテクノロジは通常のWebサーバやファイル・サーバをベースにしているので、通常のスケールアウト技術がそのまま使える。例えば大規模なWebアプリケーションでは、大量のユーザー・アクセスの負荷に耐えるためにWebサーバ・ファームを利用することが多々あるが、これをそのまま利用できる。
もちろん、負荷やトラフィックに対するこのような対応は、どの部分がボトルネックになっているのかをきちんと把握して行わなければならない。例えばネットワーク帯域幅が狭くてClickOnceアプリの展開が遅くなっているのに、Webサーバ・ファームによるスケールアウトを行ってもあまり効果が得られないからだ。
今回は最終回としてセキュリティに関しても解説する予定だったが、思いのほか長くなってしまったため、今回はここで終わりにさせていただく。
次回は今度こそ、ClickOnceアプリの特徴ともいえるセキュリティ関連の機能について解説する。そして最後にWindows Vista以降のClickOnceテクノロジについて簡単に触れる予定だ。お楽しみに。
Copyright© Digital Advantage Corp. All Rights Reserved.