1. ホーム
  2. visual-studio

[解決済み] VS2010 プロジェクトへの外部アクセスのための IIS Express の設定

2022-12-04 21:41:06

質問内容

VS2010 でプロジェクトを開発しており、IIS Express を介してローカルにサイトを表示することができます。 ネットワーク経由で外部からのアクセスを可能にしたいと思います。

私のすべての調査は、このブログ エントリに私を送りました。 http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx は参考になりますが、ビジュアル スタジオで開始したプロジェクトにバインディングを設定する方法は示されていないようです (スクリーンショットで画面を見つけることができず、applicationhost.config でバインディング情報を編集しましたが、ビジュアル スタジオからサイトを実行すると反映されないようです)。

どのように解決すればよいのでしょうか?

1 applicationhost.config ファイル(ドキュメント内の IISExpress フォルダにあります)を編集すると、サイトバインディングは以下のようになります。

<bindings>
  <binding protocol="http" bindingInformation="*:8080:*" />
</bindings>

バインディングは3つの部分で構成されています。まず、IP アドレスまたはリスト、あるいはこの場合のようにワイルドカード。次にポート番号、そして 3 番目にホスト名、リスト、ワイルドカードです (以下の方法でフィルタリングするため)。 Host ヘッダーによるフィルタリングのため)。開発目的では、一意のポートを使用する可能性が高いので、ここではワイルドカードが最も適しています。

2 ローカルホスト以外のバインディングを使用しているため、追加のパーミッションが必要です。管理者としてVSを実行するか、できれば URL ACL を追加する を追加して、必要なパーミッションを与える必要があります。以下の例では、すべての人に権限を与えていますが、自分のユーザー名を使用することもできます。

注意してください。 urlacl はバインディングと正確に一致しなければなりません。ですから urlacl に対して 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 最後に、適切なファイアウォールエントリが必要です。これには、quot;Windows Firewall with Advanced Security" コンソールを使用するのが最も簡単です。

受信の規則] の下で [新しい規則] を選択します。

  • ルールの種類は "カスタム" です。
  • Program is Services->Customize...->Apply to services only. (IIS Express はサービスではありませんが、使用する HTTP マルチプレクサはサービスです)。
  • プロトコルは TCP
  • 特定のポート。IIS Expressバインディングのすべてのポートをリストアップします。このルールに戻って、いつでもポートを追加することができます。(これが面倒になった場合は、次のような範囲を追加するとよいでしょう。 40000-65534 のように、Visual Studio で使用されるすべての範囲をカバーする範囲を追加することもできますが、これは安全性が低いので注意してください)。
  • Action は "Allow the connection" です。
  • Profileは以下のいずれかになります。迷ったら "ドメイン + プライベート" を選んでください。
    • Domain"、企業のデスクトップで、ローカル ドメインでのみ実行される場合。
    • ドメイン + プライベート: 非企業環境におけるプライベートな開発マシン、または在宅勤務の際にも動作する必要がある企業のラップトップである場合。
    • ドメイン、プライベートおよびパブリック: プライベート ネットワーク以外のネットワークでデモを行う必要がある場合。
  • 名前は、"IIS Express Dev Server" のようなものでなければなりません。