Visual Studio 2015 の IIS Express でIP経由の接続方法についてご紹介します。
通常、VisualStudio でデバッグ実行するとIEが立ち上がり、//localhost:port番号/MyPage.aspx というURLで動作確認されていると思いますが、他の端末やブラウザからもテストしたいですよね。そこでIISの設定を変更することで自端末以外からのIP接続を受け付けれるようにすることができます。
前提条件
Windows 7 Professional 以降 / Windows
Server 2008 R2 以降
Visual Studio 2015 Community 以降
1.applicationhost.config の編集
ソリューションフォルダ\.vs\config\applicationhost.configファイルを開きます。
(1)画面右下のタスクトレイから IIS Express のマークを右クリックします。
(2)右クリックして「全てのアプリケーションを表示」を選択します。
(3)構成のファイルパスをクリックします。
(4)構成のパスをクリックすると VisualStudio でapplicationhost.configファイルが開きます。
追加する設定は以下の1行のみです。
<binding protocol="http" bindingInformation="*:ポート番号:IPアドレス" />※LocalHostで設定されているポート番号と異なる番号で設定することを推奨します。
※IPアドレスはブラウザ側のIPアドレスではなく、IISExpress側のIPアドレスを入力します。
applicationhost.config
<sites><site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<site name="TreeViewTest" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="...\TreeViewTest\TreeViewTest" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:ポート番号:localhost" />
<!-- 以下の1行を追加します。-->
<binding protocol="http" bindingInformation="*:ポート番号:IPアドレス" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
configファイルに追加してWebサイトを実行すると追加したIPでの待ち受けが開始されるようになります。
2.URL ACL の設定
コマンドプロンプトを管理者権限で実行し、以下のコマンドを実行します。
設定を解除する場合
netsh http delete urlacl url=//IPアドレス:ポート番号/
設定を確認する場合
netsh http show urlacl
※applicationhost.configで追加したIPアドレスとポート番号を入力します。
※LocalHostで設定されているポート番号と異なる番号で設定することを推奨します。
3.ファイアウォールの設定
受信ポートは上記で設定したポート番号、受信IPも上記で設定したIPにて Windows FireWall またはサードパーティのファイアウォールの設定を許可にしてください。
以上で他の端末からのHTTP接続が可能です。
尚、設定しているポート番号がIPとLocalHostで同じだと、VSからデバッグ実行してもIE上では何も表示されず、IPベースのURLに変更してあげると正常に表示ができます。ポート番号を1つずらすなど、異なるポート番号で設定すると共存が可能です。
最後までお読みいただきありがとうございます。
いかがでしたでしょうか。他にも asp.net に関連する記事を投稿しておりますのでよろしければご参考くださいませ。
- スマホを判別して特定のURLにリダイレクトする方法 | asp.net
- セッションハイジャック対策がされているか確認する方法 | asp.net
- Visual Studio 2015 の IIS Express にIP経由で接続する方法 | asp.net
- ぺージロード時のスクリプト処理順序について | asp.net
- DIVで囲れたコントロールを横並びに配置しスクロールを表示する方法 | asp.net
ASP.NETアプリケーションを実行する場合には、ブラウザーを介して行う必要があります。このためには、サーバーにファイルをアップロードして外部からアクセスしなければなりません。この環境を用意できない場合、WindowsではIIS(Internet Information Service)という仮想のサーバー環境を利用することで、ローカル環境でもASP.NETを動かすことが可能です。
システムエンジニアASP.NETをWindowsのローカル環境で動かすにはどうしたら良いですか?プロジェクト
マネージャーその場合はIISを利用するのがおすすめです。動かす前に環境設定が必要なので、導入方法から見ていきましょうか。
IISの概要と導入・構築方法
IISは、Windows環境上で仮想サーバーを稼働させるためのソフトウェアです。利用するには設定が必要になりますが、一度設定してしまえば、ASP.NETで作成したファイルを簡単に表示できるようになります。仮想サーバーを構築する方法はいくつかありますが、IISはWindowsの標準ソフトウェアとしてインストールされているので、こちらを利用する方が簡単です。
IISの設定方法(Windows10の場合)
スタートメニュー→Windowsシステムツール→コントロールパネルを選択します。
プログラムを選択します。
Windowsの機能の有効化または無効化を選択します。
インターネットインフォメーションサービスにチェックを入れて「OK」を選択します。(必要に応じて.NET Frameworkもここでインストールできます。)
スタートメニュー→Windows管理ツール→インターネットインフォメーションサービスがあればインストール完了です。
//localhost/と入力して、上記の画面が出れば設定完了となります。
アプリの作成
IISの設定が完了したら、実際にASP.NETを動かすためのファイルを作成します。Visual Studioで作成しても構いませんが、コードの書き方が分かるのであれば、テキストファイルから打ち込んでも問題ありません。コンパイルは画面表示の時に行われますので、エラーがある場合には表示エラーの画面になります。
コードを作成したら、rootフォルダへコピーをしましょう。基本的にはlocalhostで呼び出しますが、それと紐づいたフォルダに入れないと呼び出すことができないためです。通常のサーバー環境にアップロードするにはFTPなどを使って行う必要がありますが、IISの場合は設定してあるフォルダへコピーを行うだけと、非常にシンプルです(rootフォルダへのファイルのコピーには管理者権限が必要です)。
また、デフォルト設定ではポート番号80が使用されますが、利用するポート番号を複数設定することも可能です。その場合、//localhost:○○と(○○に設定したポート番号)指定してアクセスします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@PageLanguage="C#"%> <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="//www.w3.org/1999/xhtml"> <head runat="server"> <title>ASP.NET FirstTest</title> </head> <body> <p> <% Response.Write("ASP.NET TEST"); %> </p> </body> </html> |
実行結果
このコードでは、指定したメッセージを画面に表示します。
IISに簡単なASP.NET Coreアプリを発行する
では、次にASP.NET CoreアプリをIISで動かしてみましょう。Visual Studioを利用してデフォルトのCoreファイルを作ることにします。まず、Visual Studioを立ち上げ、ASP.NET CoreのWebアプリケーション作成を選択してデフォルトのプロジェクトを作成しましょう。
プロジェクトの作成が完了したら、そのままビルドしてみましょう。すでにデフォルト設定は済んでいるので、表示するための最低限のファイルがそろっている状態でプロジェクトが作成されています。ビルドが完了したら、実行ファイル(.exe)を起動しましょう。実行ファイルはプロジェクト配下のbinフォルダ、もしくはDebugフォルダに作成されています。実行するとコマンドプロンプトが起動し、アクセスするためのポート番号が開かれるので、localhost:○○(指定されたポート番号)にアクセスしましょう。
↑最上部にアプリケーションにアクセスするためのアドレスが表示されます。
実行結果
デフォルトのままビルドしたページが表示されます。ビルドした時点でのソースファイルが反映されているので、ソースが変更された場合は実行ファイルを一旦シャットダウン(Ctrl+Cキーを押す)して、再度ビルドしなおします。
IISを動かす際の注意事項
IISを利用してローカルネットワーク上からアクセスすることはできますが、ライセンス条項によると20台を超えるアクセスを行うと、違反になってしまうので、規模が大きい開発を行う場合には注意が必要です。
システムエンジニア扱い方も簡単で、操作もしやすいのでASP.NETを動かすときには重宝しますね。プロジェクト
マネージャー単体テストや簡単な動作チェックもしやすいですし、セットアップも楽ですからIISはローカルサーバーとして利用されるシェアも高いですよ。
簡単に操作できるので導入・環境構築がスムーズ
IISは環境構築する手間が他のローカルサーバーと比べても楽です。特にサーバーへのコマンドなどを打つ必要がないことは大きな利点で、サーバー構築に不慣れなユーザーでも扱いやすいでしょう。WindowsでASP.NETを動かすならば、IISが最も簡単に仮想サーバーを構築できる手段になります。