1 applicationhost.configファイル(ドキュメントのIISExpressフォルダーにあります)を編集すると、サイトバインディングは次のようになります。
<bindings>
<binding protocol="http" bindingInformation="*:8080:*" />
</bindings>
バインディングは3つの部分で構成されています。まず、IPアドレスまたはリスト、またはこの場合はワイルドカード。2番目にポート番号、3番目にホスト名、リスト、またはワイルドカード(Host
ヘッダーによるフィルタリング用)。開発目的では、一意のポートを使用する可能性が高いため、ワイルドカードが最適です。
2非localhostバインディングを使用しているため、追加の権限が必要です。管理者としてVSを実行するか、URL ACLを追加して必要な権限を付与することをお勧めします。以下の例では、すべてのユーザーに権限が付与されていますが、独自のユーザー名を使用することもできます。
注:urlacl
必須では正確にバインディングに一致します。したがって、urlacl
for http://*:8080
はのバインディングを許可しますが、後者が前者のサブセットであっても、のバインディングは許可し*:8080:*
ません*:8080:localhost
。つまり、ワイルドカードを使用する代わりに、にホストヘッダーをリストする場合、それぞれにapplicationhost.config
一致urlacl
を追加する必要があります。
外部トラフィック用にHTTP.sysを構成する手順は、予約済みポートを使用するようにサイトを設定する場合と同様です。Windows 7またはWindows Vistaでは、管理者特権のコマンドプロンプトから次のコマンドを実行します。
netsh http add urlacl url=http://*:8080/ user=DOMAIN\username
Windows XPでは、管理者特権のコマンドプロンプトから次のコマンドを実行します。
httpcfg set urlacl /u http://*:8080/ /a D:(A;;GX;;;WD)
注2管理者としてVSを実行するか、ACLエントリを追加しても問題が解決しない場合は、コマンドラインからIIS Expressを実行し、バインド登録の失敗メッセージがないかどうかを確認します。コマンドラインから開始するには、次のコマンドを入力します。
iisexpress.exe /site:"your-site-name"
3最後に、適切なファイアウォールエントリが必要です。このためには、「セキュリティが強化されたWindowsファイアウォール」コンソールを使用するのが最も簡単です。
[受信の規則]で[新しい規則...]を選択します。
- ルールタイプは「カスタム」です。
- プログラムはServices-> Customize ...-> Apply to services onlyです。(IIS Expressはサービスではありませんが、使用するHTTPマルチプレクサはサービスです)。
- プロトコルはTCPです
- 特定のポート:すべてのIIS Expressバインディングのすべてのポートをリストします。このルールに戻って、いつでもポートを追加できます。(これが面倒になる場合
40000-65534
は、Visual Studioで使用される範囲全体をカバーするような範囲を追加する可能性がありますが、これは安全性が低いことに注意してください)。
- アクションは「接続を許可する」です
- プロファイルは次のいずれかになります。疑問がある場合は、「ドメイン+プライベート」を選択してください。
- 「ドメイン」、あなたがあなたの会社のデスクトップであり、ローカルドメインでのみ実行される場合
- 「ドメイン+プライベート」あなたが非企業環境のプライベート開発マシンである場合、または自宅で仕事をするときにも動作する必要がある企業のラップトップの場合。
- 「ドメイン、プライベート、パブリック」。非プライベートネットワークでデモを行う必要がある場合。
- 名前は「IIS Express Dev Server」のようなものでなければなりません