Связывание IIS Express с IP-адресом

Можно ли использовать IIS Express для размещения страниц в сети. Из коробки он может делать localhost, но я пытаюсь привязать его к IP-адресу.

Ответ 1

Думаю, ты сможешь.

Для этого вам нужно отредактировать файл applicationhost.config вручную (отредактируйте bindingInformation '<ip-address>:<port>:<host-name>')

Чтобы запустить iisexpress, вам нужны права администратора

Ответ 2

Чтобы IIS Express отвечал на любой IP-адрес, просто оставьте адрес пустым, i.e:

bindingInformation=":8080:"

Не забудьте перезапустить IIS express до того, как изменения могут произойти.

Ответ 3

Как уже упоминалось выше, отредактируйте приложение host.config. Легкий способ найти это - запустить ваш сайт в VS с помощью IIS Express. Щелкните правой кнопкой мыши значок systray, покажите все приложения. Выберите свой сайт, а затем нажмите на ссылку конфигурации внизу, чтобы открыть его.

Я бы предложил добавить другую запись привязки и оставить там исходный локальный хост. Это дополнительное связывание появится в Systray IIS Express как отдельное приложение под сайтом.

Чтобы избежать необходимости запуска VS в качестве администратора (много хороших причин не запускаться как admin), добавьте правило netsh следующим образом (очевидно, заменив IP и порт вашими значениями) - вам понадобится admin cmd.exe для этого его нужно запустить только один раз:

netsh http add urlacl url=http:https://stackoverflow.com/https://stackoverflow.com/192.168.1.121:51652https://stackoverflow.com/ user=\Everyone


netsh может добавлять такие правила, как url ​​= http:https://stackoverflow.com/https://stackoverflow.com/+:51652https://stackoverflow.com/, но мне не удалось это хорошо разместить с помощью IIS Express. Вы можете использовать netsh http show urlacl, чтобы перечислить существующие правила, и их можно удалить с помощью netsh http delete urlacl url=blah.

Дополнительная информация: http:https://stackoverflow.com/https://stackoverflow.com/msdn.microsoft.comhttps://stackoverflow.com/en-ushttps://stackoverflow.com/libraryhttps://stackoverflow.com/ms733768.aspx

Ответ 4

Ниже перечислены все изменения, которые мне нужно сделать для запуска моего приложения IIS с 64-разрядной биткойдью с использованием IIS Express, чтобы он был доступен удаленному хосту:

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>

64-битная версия платформы .NET может быть включена следующим образом:

<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" />

Ответ 5

Измените bindingInformation=":8080:"

И не забудьте отключить брандмауэр для IISExpress