Hebikuzure's Tech Memo

2013年5月12日

Windows ストア アプリをループバック(localhost)に接続する

Filed under: Windows Tips — hebikuzure @ 9:51 午後

Windows 8 の Windows ストア スタイルのアプリケーションは、従来のデスクトップ アプリケーションと異なる色々な制限がありますが、開発やテスト、デバッグを行ったり、ネットワーク接続関係のさまざまなトラブルシュートを行う上で大きな制約は、ループバック アダプタ (localhost や 127.0.0.1) に接続できないというものです。これは悪意のあるプログラムがホストするローカル プロキシやローカル サーバーに接続することで情報の盗み取りや改竄が行われる事が無いようにするなど、セキュリティ的な意味があるのですが、反面、ローカルの HTTP サーバーでテストするとか、Fiddler のようなローカル プロキシを使ってデバッグするといったテクニックが使えないことも意味します。

さて、一つ前の記事に載せた Community Open Day のセッション「Windows 8 で魅力的なWeb サイトを作る」では、Windows ストア スタイルの Internet Explorer から http://localhost/… でサンプル ページを開き、タイルとしてスタート画面にピン留めするなどのデモをやっていました。この点について時間の関係でセッションでは触れられなかったので、同じことを試される方のために解説しておきたいと思います。

Windows ストア アプリがループバックに接続できない制限は、一定の手続きで解除できます。具体的な方法は MSDN の「ループバックを有効にする方法とネットワーク分離のトラブルシューティングを行う方法 (Windows ストア アプリ)」で解説されています。この解除には CheckNetIsolation.exe を利用します。

CheckNetIsolation.exe LoopbackExempt –a –p=(パッケージのアプリ ID)

CheckNetIsolation.exe LoopbackExempt –a –n=(アプリ コンテナー名)

これらのコマンドの実行は管理者への昇格が必要なので、コマンドプロンプトを「管理者として実行」で起動して、コマンドを実行します。

ただしこの方法では個々のアプリケーションの ID やアプリ コンテナー名を事前に調べておく必要があり、またアプリ一つ一つについて指定する必要もあるので多少手間がかかります。こうした手間を省くツールとして、”Windows 8 AppContainer Loopback Utility”(EnableLoopback Utility)があります。これは元々 Fillder のアドオンとして作成されたツールですが、単独でも利用できます。

”Windows 8 AppContainer Loopback Utility”(EnableLoopback Utility)は以下のページからダウンロードできます。

http://fiddler2.com/add-ons

このツールを使う場合も管理者への昇格が必要なので、管理者として実行します。

img01

この画面で、先頭のチェックボックスにチェックを入れ、[Save Shanges] をクリックすると、そのアプリのループバック接続が有効になります。ストアからインストールしたアプリではDispalyName には以下のように実際の表示名が表示されますので、アプリの識別も容易です。

img02

同じツールでループバックへの接続を無効にする(既定に戻す)こともできます。チェックを外し、、[Save Shanges] をクリックするだけです。

1台の PC で Windows ストア アプリの開発環境を完結するためアプリをローカル サーバーに接続させたい場合や、トラブル対応などでアプリの挙動を Fiddler のようなツールでデバッグしたい場合、”Windows 8 AppContainer Loopback Utility”(EnableLoopback Utility) を利用してみてください。

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

WordPress.com Blog.