web-dev-qa-db-ja.com

VS2010プロジェクトへの外部アクセス用にIIS Expressを構成します

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

私のすべての研究により、このブログエントリに送られました: http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx =、これは便利ですが、Visual Studioで開始されたプロジェクトのバインドを構成する方法を示していないようです(スクリーンショットで画面が見つからず、applicationhost.configでバインド情報を編集しましたが、 Visual Studioからサイトを実行すると反映されます)。

102
snumpy

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

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

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

2非ローカルホストバインディングを使用しているため、追加の権限が必要です。 VSを管理者として実行することもできますが、必要に応じて RL ACLを追加 する必要があります。以下の例では、すべてのユーザーに許可が与えられていますが、独自のユーザー名を使用することもできます。

注:urlaclはバインディングと完全に一致する必要があります。したがって、http://*:8080urlaclは、*:8080:*のバインディングを許可しますが、後者が前者のサブセットであっても、*:8080:localhostのバインディングは許可しません。 これは、ワイルドカードを使用する代わりに、applicationhost.configにHostヘッダーをリストする場合、それぞれに対応する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)

注2VSを管理者として実行するか、ACLエントリを追加しても問題が解決しない場合は、コマンドラインからIIS Expressを実行しますバインディング登録エラーメッセージがあるかどうかを確認します。コマンドラインから開始するには、次のコマンドを入力します。

iisexpress.exe /site:"your-site-name"

3最後に、適切なファイアウォールエントリが必要になります。このためには、「セキュリティが強化されたWindowsファイアウォール」コンソールを使用するのが最も簡単です。

[受信ルール]で[新しいルール...]を選択します。

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

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

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

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

これを実行してIISExpressを再起動したら... dev-Leeマシンを参照して、Xoomからアプリを確認できました!

29
leester39

IIS Expressのapplicationhost.configを編集して、複数のバインディングアドレスを追加できます。

<bindings>
   <binding protocol="http" bindingInformation="*:62217:localhost" />
   <binding protocol="http" bindingInformation="*:62217:192.168.0.5" />
   <binding protocol="http" bindingInformation="*:62218:192.168.0.5" />
</bindings>

これで、IPアドレスを使用してLANからWebサイトにアクセスできます。

IIS Expressを使用してLANからローカルサイトにアクセスする

14
Nasir Mahmood

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

6
Jon Eldridge

これを可能にするConveyorという無料のVS(2012、2013、2015)拡張機能を作成しました。VSの[ツール]-> [拡張機能...]メニューまたはギャラリーサイト https:// visualstudiogallery。 msdn.Microsoft.com/a429dbb7-a982-4541-b401-934375c02c0f?SRC=Home

2
Jim W

Visual Studioを使用している場合は、次の手順に従ってIPアドレス経由でIIS-Expressにアクセスします。

  1. ホストのIPアドレスを取得:ipconfig in Windows Command Line
  2. GoTo $(SolutionDir).vs\config\applicationHost.config
  3. 見つける
    <site name="WebApplication3" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" /> </application> <bindings> <binding protocol="http" bindingInformation="*:62549:localhost" /> </bindings> </site>
  4. 追加:<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    あなたのIPアドレス
  5. 管理者権限でVisual Studioを実行すると、すべてが機能するはずです
  6. リモートから接続しようとする場合、いくつかのファイアウォールの問題を探すかもし​​れません

手がかりは、Visual Studioが独自のapplicationHost.configファイルを得たことです!

1

Visual Studio 2012からこれを機能させるのに苦労しました。404エラーから503エラーになりました。最終的に私のために働いたのは、IIS Express構成の関連する構成をすべて消去することでした...

"\Program Files (x86)\IIS Express\appcmd.exe" list site
"\Program Files (x86)\IIS Express\appcmd.exe" delete site xxx
"\Program Files (x86)\IIS Express\appcmd.exe" delete site yyy

次に、VSのWebプロジェクトのプロパティページから新しい仮想ディレクトリを作成しましたが、仮想ディレクトリを作成する前にホスト名を http:// myhost:80 / に変更してから、仮想ディレクトリの作成をクリックしますボタン。以前は、ホスト名が「localhost」でなければならないというエラーが表示されていましたが、今回はそうではありませんでした。そしてその後、うまくいきました。

要するに、最初に既存の構成をクリアして、もう一度開始します。

0
stu