デバック中のWebApiにローカルネットワーク上の別端末からリクエストを送る方法
環境
目的
IIS Expressに対してデバック中の端末以外のローカルネットワーク上からリクエストを送ることができるようになる。
流れ
- VisualStudioでWebApiのデバックを開始する
- IIS Expressのコンテキストメニューから構成をクリックする
- 自分のIP+新しいポート番号を追加する。
- 強化されたファイアウォールから新しいポートを受信設定に追加する。
詳細
1. VisualStudioでWebApiのデバックを開始する
VisuauStudioのデバック開始ボタンを押すか。F5キーを押してデバックを開始する。
2. IIS Expressのコンテキストメニューから構成をクリックする
タスクトレイに表示されているIISEexpresあいこんのコンテキストメニューのすべてのアプリケーションを表示をクリックする
サイト名をクリックして下に表示される構成をクリックする
3. 自分のIP+新しいポート番号を追加する。
※重要:新しいポートはlocalhostのポート番号とは別にすること
もう一度デバックを開始した時に追加したIP:ポート番号が表示されていれば成功
- 追加したIPが表示されない時
- VisualStudioを閉じる
- ソリューション直下のbinとobjフォルダを削除する
- もう一度デバックを開始する
- 追加したIPが表示されない時
1. 強化されたファイアウォールから新しいポートを受信設定に追加する。
- タスクバーのテキスト入力にに「強化された」とする。表示されていない時はタスクバーの虫眼鏡をクリック
セキュリティ強化されたファイアウォールをクリックする
受信の規則から新しい規則をクリックする
ポートを選択して次へ
TCP 特定のローカルポートに「3. 自分のIP+新しいポート番号を追加する」で追加したポートを入力する
あとは次へを繰り返して完了
以上
小話
なぜこれが必要になったのかというと、Xamarin.FormsでAndroidを開発している時にサーバーサイドはAsp.NetWebApiで開発していた。当初はローカルで用意したサーバーにわざわざリリースして確認していたのだが、開発効率落ちるし異常終了したときに追いずらいしでさんざんだった。 そんな時に、VisualStudioで同じソリューション内であれば、複数プロジェクトを同時にデバックできることを知った。しかし、今回の設定をしなければ、Androidがローカルネットワークを経由して、自分のPCに立っているWebApiに通信できないので、設定を行ったという流れだ。