![]() |
連載
|
|
|
|
Back Issue
|
||||||||||
|
前々回および前回は、ClickOnceテクノロジを拡張・カスタマイズするための開発手法を説明した。今回は開発フェイズから運用フェイズに話題を移し、ClickOnceアプリケーション(以降、ClickOnceアプリ)を実際に運用する際に注意すべき5つのポイントを紹介する。
■実運用ポイント1:Webサーバへの配置
ClickOnceはWebサーバを選ばない。つまり、Windows上のIIS(インターネット・インフォメーション・サービス)によるWebサーバだけでなく、Linux上のApacheによるWebサーバなどに対しても、ClickOnceアプリを配置できるのだ(これは、ClickOnceがサーバサイド・テクノロジではなく、クライアントサイド・テクノロジだからである)。
実際にClickOnceアプリを各種Webサーバへ配置するには、単に「発行されたClickOnceアプリのディレクトリやファイル群」をコピーするだけでよい。
●MIMEタイプの設定
ただし、ClickOnceテクノロジを適切に機能させるためには、(基本的に)事前にWebサーバ上で、次の表で示す「ClickOnce関連の拡張子(.application、.manifestおよび.deploy)に対するMIMEタイプの設定」を行っておかなければならない。
| 拡張子 | MIMEタイプ |
| .application | application/x-ms-application |
| .manifest | application/x-ms-manifest |
| .deploy | application/octet-stream |
| Webサーバで行う「ClickOnce関連の拡張子に対するMIMEタイプの設定」 | |
| 「.application」は配置マニフェストのための拡張子、「.manifest」はアプリケーション・マニフェストのための拡張子、「.deploy」はClickOnceでクライアント環境に配布するファイルに付加される拡張子である。詳しくは「第2回 ClickOnceの仕組みを理解しよう」を参照してほしい。 | |
このMIMEタイプの設定を行わない場合、IE(Microsoft Internet Explorer)で表示されたWebページ上のハイパーリンクをクリックしてClickOnceアプリを起動しようとしても、XMLの内容が表示されてしまったり(これが起こるのは主に拡張子「.application」のMIMEタイプが「text/xml」になっている場合)、[実行/名前を付けて保存]ダイアログが表示されてしまったり(主に拡張子「.application」のMIMEタイプが「application/octet-stream」になっている場合)することがある(※なお、.NET Framework 2.0がインストールされたWindows上のIISでは、これらの設定をしなくても問題なく動作するケースもある)。よってMIMEタイプの設定は極力行った方がよい。
実際にIISでMIMEタイプを設定するには、次の画面の手順を参考にしてほしい(Windows Server 2003上のIIS 6.0の場合)。
またApacheでMIMEタイプを設定するには、次のようなMIMEタイプの設定を、Webサーバ全体の構成ファイルである「httpd.conf」やディレクトリごとの「.htaccess」に書き込めばよい。
|
|
| ApacheにおけるMIMEタイプの設定 | |
| httpd.confを編集した場合は、Webサーバを再起動する必要がある。 |
●MIMEタイプの確認
最後に設定したMIMEタイプが正常に働いているかをチェックしてみよう。これを行うには、Webサーバとの通信データのやりとりをモニタリングし、HTTPレスポンス・ヘッダの「Content-Type」を参照すればよい。
HTTP通信をモニタリングするには、マイクロソフトが提供する「Fiddler」というツールがお勧めだ(Fiddlerについては「Windows TIPS:Webアクセスをモニタする」を参照されたい)。次の画面は、実際にFiddlerを使って.applicationファイルのMIMEタイプを確認しているところ。
![]() |
||||||||||||
| FiddlerによるMIMEタイプの確認 | ||||||||||||
| Fiddlerを使って.applicationファイルのMIMEタイプを確認しているところ。本稿の例では、IEのアドレス部分に「http://server01/fdotnet/@work/clickoncetest /WindowsApplication20.application」というURLを入力して、直接.applicationファイルを開こうとした結果である。 |
||||||||||||
|
|
【コラム】MIMEタイプが正しく受信できない場合 |
●利用可能なWebサーバの機能
○HTTPSプロトコルやファイル共有のサポート
ClickOnceは、HTTPプロトコル(http://〜)だけでなく、SSLに対応したHTTPSプロトコル(https://〜)、さらにWindowsによるファイル共有(file://〜)をサポートしている。ちなみにFTPプロトコル(ftp://〜)はサポートしていない。
○HTTP圧縮のサポート
ClickOnceは、HTTP圧縮をサポートしている。HTTP圧縮とは、GZIPアルゴリズムにより通信データを圧縮するテクノロジである(HTTP/1.1プロトコルで規定されている機能)。このようなHTTP圧縮が役立つのは、特にネットワーク帯域幅が狭い場合である(より速くアプリケーションをダウンロードできるようになる)。
例えば筆者の環境では、「5263」bytesの.applicationファイルをHTTP圧縮した場合、そのサイズは「1932」(37%)にまで縮小されたが、このようにして通信データ(ネットワーク・トラフィック)を少なくすれば特に細い回線でネックとなるファイルのダウンロード時間を軽減して、展開のパフォーマンスを向上できるはずだ。
ClickOnceでは通信データがHTTP圧縮されている場合、開発者が何もしなくても自動的に解凍してくれる。運用管理者(もしくは開発者)の作業はただ、ClickOnceアプリのファイル群の通信がHTTP圧縮されるように、Webサーバ上の設定を行うだけだ。この作業をIISに対して自動的に行うサンプルのバッチ・ファイルを用意したので、興味がある読者は参考にしてほしい(HTTP圧縮の設定方法に関しては「.NET TIPS:HTTP圧縮を使用してWebページを取得するには?」の「【コラム】Windows ServerのIISでのHTTP圧縮の設定」を参考にされたい)。
ただしHTTP圧縮が設定できるIISは、サーバ版OS(Windows Server 2003/2000 Server/NT Server 4.0)のものだけである。Windows XP Professionalなどに付属するIISはHTTP圧縮ができないように機能制限されているので注意が必要だ(参考:「Windows TIPS:Professional版に付属するIISの制限」)。
なお、ClickOnceでHTTP圧縮を利用するには、HTTPレスポンス・ヘッダの「Content-Encoding」に必ず「gzip」が含まれていなければならない(「Content-Encoding」の内容は、前述のFiddlerを使って、MIMEタイプとほぼ同じ手順で確認できる)。というのもClickOnceでは、「Accept-Encoding: gzip」を設定したHTTPリクエスト・ヘッダをWebサーバに送信する。そのため、WebサーバのHTTP圧縮の設定で「gzip」が含まれていない場合(例えば「deflate」のみが設定されている場合)はHTTP圧縮が行われないのである(ちなみにIISで通常どおりHTTP圧縮を設定すれば、「gzip」は含まれるはずだ)。
●利用不可能なWebサーバの機能
○Windows認証以外はサポートされない
ClickOnceでは、Windows認証しかサポートされていない。つまり、例えば次のような認証方法は利用できないということだ。
- Webサーバによる「基本認証」
- ASP.NETによる「フォーム認証」
- プロキシ・サーバによる「プロキシ認証」*1
| *1 サポート・オンラインの情報によると、プロキシ認証が利用できないのはバグのようで、.NET Framework 2.0の次のService Packで修正されるらしい。 |
Windows認証が使える環境なら、次の記事が参考になるだろう。
Windows認証が使えない場合、独自の認証処理を実装するしかないだろう。例えば「ClickOnceアプリが起動した後でWebサービスによる認証を実施すること」などが考えられる。
| INDEX | ||
| ClickOnceの真実 | ||
| 第6回 ClickOnceの運用を成功させる5つのポイント | ||
| 1.実運用ポイント1:Webサーバへの配置 | ||
| 2.実運用ポイント2:効率的な展開(配布/更新) | ||
| 3.実運用ポイント3:.NET Framework 2.0のインストール | ||
| 4.実運用ポイント4:機能上の制限とトラブルシューティング/ 実運用ポイント5:ユーザー数(負荷&トラフィック)増大への対処 |
||
| 「ClickOnceの真実」 |
ホワイトペーパー(TechTargetジャパン)
- LocalConnection APIと動的なスタイリング (2010/2/9)
Webページ上の複数のSilverlightアプリ間でメッセージ通信をする方法とは? コントロールの見た目を動的に設定する方法とは? - ASP.NET MVC 2:モデルの検証 (2010/2/8)
ASP.NET MVC 2で導入される入力検証機能を使った実装を紹介。シンプルな属性の追加によるエレガントな実装が可能となっている - ASP.NETによる3階層Webアプリ「ITブック」構築 (2010/2/5)
ちょっとした改造で、あなたのWebアプリは劇的に使いやすく、かっこよくなる。まずは元となるWebアプリを標準的手法で構築 - .NET TIPS - .NET開発のテクニックとヒント集 - (2010/2/4)
− カスタムMVCビューエンジンを利用するには?(活用編)
− フォーム全体へのドッキングでつまみを表示するには?
− リストボックスでTextBlockの文字列を折り返すには?
|
|
スキルアップ/キャリアアップ(JOB@IT)
は.NET開発者中心に生まれ変わりました
スポンサーからのお知らせ
.NET開発者中心コーナー
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |











