IIS Express を使用してネットワーク上のページをホストすることは可能ですか? そのままで localhost を実行できますが、IP アドレスにバインドしようとしています。
5 に答える
できると思います。
これを行うには、applicationhost.config
ファイルを手動で編集する必要があります (bindingInformation ' <ip-address>:<port>:<host-name>
' を編集)。
iisexpress を起動するには、管理者権限が必要です
IIS Express が任意の IP アドレスで応答するには、アドレスを空白のままにします。つまり、次のようにします。
bindingInformation=":8080:"
変更を有効にする前に、IIS Express を再起動することを忘れないでください。
上記のように、アプリケーションの host.config を編集します。これを見つける簡単な方法は、IIS Express を使用して VS でサイトを実行することです。systray アイコンを右クリックし、すべてのアプリケーションを表示します。サイトを選択し、下部にある構成リンクをクリックして開きます。
別のバインド エントリを追加し、最初の localhost をそのままにしておくことをお勧めします。この追加のバインドは、IIS Express systray で、サイトの下の別のアプリケーションとして表示されます。
VS を管理者として実行する必要がないようにするには (管理者として実行しない多くの正当な理由があります)、次のように netsh ルールを追加します (明らかに、IP とポートを自分の値に置き換えます)。これには管理者の cmd.exe が必要です。一度だけ実行する必要があります。
netsh http add urlacl url=http://192.168.1.121:51652/ user=\Everyone
netsh は url= http://+:51652/のようなルールを追加できますが、これを IIS Express でうまく配置できませんでした。を使用netsh http show urlacl
して既存のルールを一覧表示し、 で削除できますnetsh http delete urlacl url=blah
。
以下は、リモート ホストからアクセスできるように、IIS Express を使用して x64 ビット IIS アプリケーションを実行するために必要な完全な変更です。
iisexpress /config:"C:\Users\test-user\Documents\IISExpress\config\applicationhost.config" /site:MyWebSite
Starting IIS Express ...
Successfully registered URL "http://192.168.2.133:8080/" for site "MyWebSite" application "/"
Registration completed for site "MyWebSite"
IIS Express is running.
Enter 'Q' to stop IIS Express
構成ファイル (applicationhost.config) に、次のセクションが追加されました。
<sites>
<site name="MyWebsite" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\build\trunk\MyWebsite" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:192.168.2.133" />
</bindings>
</site>
.NET フレームワークの 64 ビット バージョンは、次のように有効にできます。
<globalModules>
<!--
<add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
<add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
-->
<add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
変化するbindingInformation=":8080:"
また、IISExpress のファイアウォールをオフにすることを忘れないでください