開発用にIISExpressでホストされているWebサイト(MVC3)があります。(Cassini Devserverのバグに遭遇し、アップグレードする必要がありました...)さて、ローカルネット(ルーターの背後)にある他のマシンに、自分のマシンでホストされているサイトを表示させることはできますか?(たとえば、http://my.local.ip:portを私と同じLAN上のブラウザに書き込むと、ページが読み込まれますか?)
6 に答える
既定では、IISExpressはローカルホスト要求のみを処理します。外部リクエストを処理するapplicationhost.config
には、ファイル(にあります)を編集し、またはマシン名に%userprofile%\documents\iisexpress\config\
変更localhost
します。'*'
(非ローカルホストバインディングの場合は、管理者として実行するか、URL aclを管理者として設定してから、iisexpressを非管理者として実行する必要があることに注意してください)
または、 AnalogXのPortMapperなどを使用して、ローカルホストにバインドされたポートをパブリックに開いているポートにトンネリングする小さなループバックプロキシとして機能させることもできます。
例えば、
- IISExpressはローカルホストにバインドされています:8080
- PortMapperポート9090は、トラフィックをlocalhost:8080に中継するように構成されています
事実上、ポート9090(PortMapperによって開かれる)の接続はすべてlocalhost:8080にトンネリングされます。それにより、時には苦痛になる可能性のあるすべてのnetshナンセンスをバイパスします。
以下は私の構成です:
このプロキシ方式を使用する利点は、ローカル開発ボックスで開いているIISExpressポートを永続的に公開しないことです。
まれに、会議のためにポートを公開したい場合があります。ただし、ほとんどの場合、ポートは閉じており、ローカルホストからのみアクセスできます。ルーターのファイアウォールルールを毎回変更するのは面倒です。これが私が物事をセットアップする方法です:
- 私のルーターファイアウォールは9090ポートをPortMapperに転送します
- PortMapperは、 PortMapperが実行されている場合にのみ、トラフィックをIISExpress(8080でリッスン)にプロキシし続けます。
ノート
変更を有効にするには、必ずすべてのPortMapperウィンドウを閉じてください。
注2
他の人が説明しているように、アプリケーションのIISExpressバインディングを調整する必要があるかもしれません。
My Documents\IISExpress\applicationhost.config
project\.vs\config\applicationhost.config
次のようなものに:
<bindings>
<!-- bindingInformaiton format:
IPToBindTo:Port:DNSHostName -->
<!--OLD:
<binding protocol="http" bindingInformation="*:8080:localhost"/>-->
<!--Change '*' to 127.0.0.1 and remove 'localhost' right of the port number
to avoid invalid DNS hostname errors -->
<binding protocol="http" bindingInformation="127.0.0.1:8080:" />
</bindings>
これを成功させるには、3つのステップがあると思います。
1)他のマシンが開発マシンのIPアドレスを検索できるように、DNSエントリまたはホストエントリを追加します
2)次のように%userprofile / document / IISExpress/Configのapplicationhost.configにバインディングを追加します
<site name="MobileDashboard(2)" id="7">
<bindings>
...
<binding protocol="http" bindingInformation="*:yourport#:yourmachinendnsname" />
</bindings>
</site>
3)ここにあるコマンドを実行して、着信要求を許可します。
netsh http add urlacl url=http://yourmachinendnsname:yourport#/ user=everyone
このスレッドの答えは素晴らしいです、それはファイアウォールの例外を除外するだけです。
netsh advfirewall firewall add rule name="IIS Express (non-SSL)" action=allow protocol=TCP dir=in localport=8000
netsh advfirewall firewall add rule name="IIS Express (SSL)" action=allow protocol=TCP dir=in localport=44300
コメントからの出典@http ://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx
http://blogs.microsoft.co.il/blogs/shair/archive/2008/12/15/how-to-use-fiddler-on-localhost.aspxのFiddlerのカスタムルールトリックは、最終的にはうまくいきました。
はい、ローカルLANで使用するためにiis Expressを使用して、いくつでもサイトを構成できます。リンクは、これを実現する方法を説明するLanIISExpressからのローカルサイトへのアクセスです。