見出し

asp.net coreのIIS Expressで別の端末から同じネットワーク環境下でアクセスする。

   2023年03月08日     4分で読めます

asp.net core で開発する際、同じネットワーク内で別の端末からアクセスしてテストをしたいこともある。特に検証段階においてはサーバーを用意し都度デプロイというのは手間であるため、local 環境で行いたいケースがあるので構築手順についてまとめていく。

通常 ASP.net coer の IIS Express だと localhost でしかアクセスができない。

前提条件:

visual studio は管理者権限で起動しておくこと.

IP アドレスの取得

自身の IP アドレスを確認して取得しておこう。 コマンドプロンプトから以下コマンドで取得できる。

ipconfig

visual studio の設定ファイル編集

まず ASP.net core のプロジェクトには.vsという隠しフォルダーがあり その中にapplicationhost.configがありそのファイルを編集する必要がある。 以下の通り取得した IP アドレスでbindingInformationを追加する。

注意; IP アドレスとポート番号については自身のデフォルトの設定に置き換え編集すること。

修正前

<bindings>
  <binding protocol="http" bindingInformation="*:63508:localhost" />
  <binding protocol="https" bindingInformation="*:44367:localhost" />
</bindings>

修正後

<bindings>
  <binding protocol="http" bindingInformation="*:63508:localhost" />
  <binding protocol="http" bindingInformation="*:63508:192.168.0.131" />
  <binding protocol="https" bindingInformation="*:44367:localhost" />
  <binding protocol="https" bindingInformation="*:44367:192.168.0.131" />
</bindings>

IIS Express の起動設定ファイルの編集

ASP.net core のプロジェクトフォルダ内に\Properties\launchSettings.jsonというファイルがあるので こちらを編集する。

注意; IP アドレスとポート番号については自身のデフォルトの設定に置き換え編集すること。

変更前


    "iisExpress": {
      "applicationUrl": "http://localhost:63508",
      "sslPort": 44367
    }

変更後

    "iisExpress": {
      "applicationUrl": "http://192.168.0.131:63508",
      "sslPort": 44367
    }

URL プレフィックスの予約

外部の端末からアクセスできるように URL プレフィックスの予約する 管理者権限のコマンドプロンプトで URL プレフィックスを予約する。

コマンド

netsh http add urlacl url=http://192.168.0.131:63508/ user=Everyone
netsh http add urlacl url=https://192.168.0.131:44367/ user=Everyone

ファイアウオールルールを追加

管理者権限のコマンドプロンプトでファイアウオールルールを追加する。

コマンド

netsh advfirewall firewall add rule name= "ASP.NET Core WASM App" dir=in action=allow protocol=TCP localport=63508
netsh advfirewall firewall add rule name= "ASP.NET Core WASM App2" dir=in action=allow protocol=TCP localport=44367

注意; IP アドレスとポート番号については自身のデフォルトの設定に置き換え編集すること。

デバッグなどの利用が終わったら

デバッグ等の利用が終ったら 管理者権限のコマンドプロンプトで URL プレフィックスを予約を削除します。

URL プレフィックスの削除

netsh http delete urlacl url=http://192.168.0.131:63508/
netsh http delete urlacl url=http://192.168.0.131:44367/

ファイアウオールルールを削除

管理者権限のコマンドプロンプトでファイアウオールルールを削除

netsh advfirewall firewall delete rule name= "ASP.NET Core WASM App"
netsh advfirewall firewall delete rule name= "ASP.NET Core WASM App2"

終わりに

今回はスマホアプリの API テストをするために PC の仮想モバイルでテストをするために上記のような環境を 構築しました。通常の API であれば localhost で問題なく実行できるのですが、別端末を使用したテストの場合は うまく活用していこうと思います。

関連記事