2011年3月4日金曜日

IIS Expressの隠しコマンド

隠してはないですけど、あまり情報のないコマンド。

mvcConf 2 - Vaidy Gopalakrishnan: IIS Express | mvcConf | Channel 9

↑このビデオですべてが語られてます。英語のなので何を語ってるのかは知りませんが。

ビデオだと15分あたりから解説になりますが、長いし何言ってるかわからないので、ボディーランゲージを読みといてみました。

通常は

  • httpでlocalhostなら非予約ポート
  • httpsでlocalhostなら44300~44399ポート

が、IIS Expressで利用可能です(たぶん)。

だけど、

  • http://localhostやhttps://localhost で予約ポート使いたい
  • IPアドレスや、ホスト名変えてアクセスしたい
  • localhostのSSLで44300~44399以外を使いたい
  • カスタム証明書を使いたい

の時のおまじないを教えよう。

IISExpressAdminCmd

これだ!

という感じの内容です。それっぽい感じが伝わればいいんです!Documents\IISExpress\configに自分用のIIS Expressの設定が入ってますよね。これをメモ帳でいじるのもいいけど、コマンドでやればhostsファイルも一緒にいじってくれるみたいです。

コマンドプロンプトで実行してみると

C:\Program Files\IIS Express>IisExpressAdminCmd.exe
使用法: iisexpressadmincmd.exe <command> <parameters>
サポートされているコマンド:
      setupFriendlyHostnameUrl -url:<url>
      deleteFriendlyHostnameUrl -url:<url>
      setupUrl -url:<url>
      deleteUrl -url:<url>
      setupSslUrl -url:<url> -CertHash:<value>
      setupSslUrl -url:<url> -UseSelfSigned
      deleteSslUrl -url:<url>

例:
1) フレンドリ ホスト名 "contoso" の "http.sys" および "hosts" ファイルを構成しま
す:
iisexpressadmincmd setupFriendlyHostnameUrl -url:http://contoso:80/
2) フレンドリ ホスト名 "contoso" の "http.sys" 構成および "hosts" ファイル エン
トリを削除します:
iisexpressadmincmd deleteFriendlyHostnameUrl -url:http://contoso:80/

と、表示されます。なるほど!分かりにくいですね!

iisexadm

ビデオだとPowerShell(VS2010のNuGetのやつ)で進むのでiisexpressadmincmd自体の説明は皆無なんですが、PSの実行結果をみるとちゃんとsetupUrlを呼び出してるのが見れます。PSのコマンドの方がいろんなコマンドを使わなくてすむから便利っすね。

とにかくsetupUrlとsetupSslUrlでlocalhost以外でもIIS Expressにアクセス出来るようになるという事ですね!

IIS Express : Microsoft Web Platform : The Official Microsoft IIS Site