107

私は VS2010 でプロジェクトを開発しており、IIS Express を介して自分のサイトをローカルで表示できます。ネットワーク経由での外部アクセスを有効にしたいと考えています。

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

4

9 に答える 9

140

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

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

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

2非 localhost バインディングを使用しているため、追加のアクセス許可が必要です。VS を管理者として実行するか、URL ACLを追加して必要なアクセス許可を付与することをお勧めします。以下の例では、全員に許可が与えられていますが、自分のユーザー名を使用することもできます。

注:urlaclバインディングと正確に一致する必要があります。したがって、urlaclforhttp://*:8080は のバインディングを許可しますが、後者が前者のサブセットであっても*:8080:*のバインディングは許可しません。これは、ワイルドカードを使用する代わりに にホスト ヘッダーをリストする場合、それぞれに一致するものを追加する必要があることを意味します。*:8080:localhostapplicationhost.configurlacl

外部トラフィック用に 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 ファイアウォール」コンソールを使用するのが最も簡単です。

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

  • ルールの種類は「カスタム」です。
  • プログラムは、サービス->カスタマイズ...->サービスのみに適用されます。(IIS Express はサービスではありませんが、使用する HTTP マルチプレクサはサービスです)。
  • プロトコルは TCP
  • 特定のポート: すべての IIS Express バインディングのすべてのポートを一覧表示します。このルールに戻って、いつでもポートを追加できます。(これが面倒な場合は40000-65534、Visual Studio で使用される範囲全体をカバーするような範囲を追加することもできますが、これは安全性が低いことに注意してください)。
  • アクションは「接続を許可する」
  • プロフィールは以下のいずれかになります。疑問がある場合は、「ドメイン + プライベート」を選択してください。
    • 「ドメイン」、あなたのデスクトップが企業のデスクトップであり、ローカル ドメインでのみ実行される場合
    • 「ドメイン + プライベート」 非企業環境のプライベート開発マシン、または自宅で作業するときにも動作する必要がある企業のラップトップの場合。
    • 非プライベート ネットワークでデモンストレーションを行う必要がある場合は、「ドメイン、プライベートおよびパブリック」。
  • 名前は「IIS Express Dev Server」のようなものにする必要があります
于 2011-03-25T21:29:10.540 に答える
29

この問題にも何時間も費やし、Android Xoom から win7 開発マシンを参照して、作成した新しい asp.net Web アプリをテストできるようにしました。私がしたことは、私の新しいサイトのために、IISExpress の applicationhost.config を PC ホスト名の使用から PC の現在の IP アドレスに変更することだけでした。

<binding protocol="http" bindingInformation="*:80:dev-Lee" />

<binding protocol="http" bindingInformation="*:80:192.168.1.102" /> 

これを行ってIISExpressを再起動すると... dev-Leeマシンを参照して、Xoomからアプリを見ることができました!

于 2012-07-30T01:47:25.150 に答える
6

Visual Studio 2013 SP1 以降 (2015) には、[サーバー設定をすべてのユーザーに適用する (プロジェクト ファイルに保存する)] 設定が含まれています。これはデフォルトで有効になっています。有効にすると、Visual Studio は別の構成ファイルを使用するコマンド ライン引数で IIS Express を起動します。「applicationhost.config」ファイルの場所は、「.vs\config」のプロジェクト ディレクトリの下にあります。

于 2015-05-22T08:10:12.550 に答える
2

これを可能にする Conveyor と呼ばれる無料の VS (2012、2013、2015) 拡張機能を作成しました。これは、VS の [ツール] -> [拡張機能] メニューから、またはギャラリー サイトhttps://visualstudiogallery.msdn.microsoft で見つけることができます。 com/a429dbb7-a982-4541-b401-934375c02c0f?SRC=ホーム

于 2016-11-02T17:26:57.240 に答える
-2

外部ドメインが「name.mydyndns.com」の場合、次のように記述する必要があります。

<binding protocol="http" bindingInformation="*:name.mydyndns.com" />

これは、Windows 2003 Server および IIS 7.5 Express で機能します。

于 2013-06-07T06:03:05.160 に答える
-3

スクリーンショット

IIS のアプリケーション プールで、[32 ビット アプリケーションを有効にする] を [true] に設定します。

于 2016-02-20T15:37:09.000 に答える