Jak włączyć żądanie zewnętrzne w IIS Express?

Jak włączyć zdalne żądania w IIS Express? Scott Guthrie napisał, że jest to możliwe, ale nie powiedział jak.

Author: Colonel Panic, 2010-07-23

21 answers

Na stronie zespołu IIS pojawił się wpis na blogu wyjaśniający, jak włączyć zdalne połączenia w IIS Express . Oto stosowna część tego postu podsumowana:

Na Vista i Win7 uruchom następujące polecenie z wiersza administracyjnego:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Dla XP, najpierw zainstaluj Windows XP Service Pack 2 Support Tools. Następnie uruchom następujące polecenie z wiersza administracyjnego:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)

 364
Author: Damian Edwards,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-16 01:33:45

Mogą być trzy zmiany, które musisz wprowadzić.

  1. Tell IIS Express się wiąże ze wszystkimi adresami ip i nazwami hostów. W pliku .config. Typowo:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • %userprofile%\My Documents\IISExpress\config\applicationhost.config

Znajdź element wiążący Twoją witrynę i dodaj

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Ustaw bit Windows o nazwie ' http.sys". Jako administrator uruchom polecenie:
    netsh http add urlacl url=http://*:8080/ user=everyone

Gdzie everyone jest grupą windows. Użyj podwójnych cudzysłowów dla grupy ze spacjami typu "Tout le monde".

  1. Zezwalaj na IIS Express przez Zaporę systemu Windows.

    Start / Zapora systemu Windows z zaawansowanymi zabezpieczeniami / reguły przychodzące / Nowa reguła...

    Program %ProgramFiles%\IIS Express\iisexpress.exe
    Lub Port 8080 TCP

Teraz po uruchomieniu iisexpress.exe powinieneś zobaczyć wiadomość taką jak

Pomyślnie zarejestrowany URL "http://*: 8080 / "dla witryny" hello world "aplikacja" / "

 322
Author: Colonel Panic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-27 17:10:41

Pamiętam, że kilka miesięcy temu napotkałem te same problemy podczas próbowania tego przepływu pracy.

Dlatego napisałem proste narzędzie proxy specjalnie dla tego typu scenariuszy: https://github.com/icflorescu/iisexpress-proxy .

Używając IIS Express Proxy , wszystko staje się dość proste – nie ma potrzeby "netsh http add urlacl url=vaidesg:8080/ user=everyone" lub bałaganu z "applicationhost.config".

Po prostu wydaj to w Komendzie prompt:

iisexpress-proxy 8080 to 3000

... i wtedy możesz skierować swoje zdalne urządzenia do http://vaidesg:3000 .

W większości przypadków prostsze jest lepsze.

 108
Author: Ionut-Cristian Florescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-30 15:23:59

Nic nie działało, dopóki nie znalazłem iisexpress-proxy .

Otwórz wiersz polecenia jako administrator, a następnie uruchom

npm install -g iisexpress-proxy

Then

iisexpress-proxy 51123 to 81

Zakładając, że projekt Visual Studio otworzy się na localhost:51123 i chcesz uzyskać dostęp na zewnętrznym adresie IP x.x.x. X:81

Edit: wystarczy wspomnieć, że działa świetnie z noip.com

 84
Author: Toolkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-17 20:04:29

Dzięki IISExpress

Dobrym zasobem jest Praca z SSL w czasie programowania jest łatwiejsza dzięki Iisexpress autorstwa Scotta Hanselmana.

To czego szukasz to sekcja uzyskanie IIS Express do obsługi zewnętrznie przez Port 80

 33
Author: Luke Sampson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 04:12:57

Jako dodatek do tego:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

To będzie działać tylko na angielskich wersjach systemu Windows. Jeśli używasz zlokalizowanej wersji, musisz zastąpić "wszyscy" czymś innym, na przykład:

  • "Iedereen" przy użyciu wersji holenderskiej
  • "Jeder" przy użyciu wersji niemieckiej
  • "Mindenki" przy użyciu wersji Węgierskiej
W przeciwnym razie pojawi się błąd (Create SDDL failed, Error: 1332)
 29
Author: breez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-29 14:26:44

Rozwiązałem to instalacją "Conveyor by Keyoti" w Visual Studio Professional 2015. Przenośnik generuje zdalny adres (twój IP) z portem (45455), który umożliwia żądanie zewnętrzne. Przykład:

Tutaj wpisz opis obrazka

Conveyor umożliwia testowanie aplikacji internetowych z zewnętrznych tabletów i telefonów w sieci lub z emulatorów Androida (bez http://10.0.2.2:<hostport>)

Kroki są w poniższym linku :

Https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti

 15
Author: Ronny Morán,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-19 20:05:59

Jeśli pracujesz z Visual Studio, wykonaj następujące kroki, aby uzyskać dostęp do usługi IIS-Express przez adres IP:

  1. Get your host IP-Address: ipconfig in Windows Command Line
  2. GoTo

    $(SolutionDir)\.vs\config\applicationHost.config
    
  3. Znajdź

    <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. Dodaj: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    z Twoim adresem IP

  5. Uruchom Visual Studio z uprawnieniami administratora i wszystko powinno działać
  6. może poszukaj problemów z firewallem, jeśli spróbujesz połączyć się ze zdalnym
 13
Author: Daniel Eisenreich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-23 06:09:11

Jeśli próbowałeś odpowiedzi pułkownika Panic , ale nie działa w Visual Studio, spróbuj tego:

Dołącz kolejne <binding /> do konfiguracji usługi IIS Express

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

W końcu musisz uruchomić Visual Studio jako Admin

 9
Author: Bruce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:23

Pomogło mi kliknięcie prawym przyciskiem myszy ikony "IISExpress", "Pokaż wszystkie aplikacje". Następnie wybierając stronę internetową i zobaczyłem, która aplicationhost.config używa, a korekta poszła idealnie.

Konfiguracja IISExpress

 7
Author: Emmanuel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-18 08:31:53

Zaakceptowana odpowiedź na to pytanie jest przewodnikiem umożliwiającym IIS Express współpracę z webmatrix. Znalazłem Ten przewodnik bardziej przydatny, gdy próbuję go uruchomić z VS 2010.

Po prostu wykonałem kroki 3 i 4 (uruchamiając IIS Express jako administrator) i musiałem tymczasowo wyłączyć moją zaporę, aby ją uruchomić.

 5
Author: Chad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-16 00:19:20

[12]}To właśnie zrobiłem w systemie Windows 10 z Visual Studio 2015, aby włączyć zdalny dostęp, zarówno z http, jak i https:

Pierwszym krokiem jest powiązanie aplikacji z wewnętrznym adresem IP. Bieg cmd -> ipconfig zdobyć adres. Otwórz plik /{project folder}/.vs/config/applicationhost.config i przewiń w dół, aż znajdziesz coś takiego:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Dodaj dwa nowe wiązania pod bindings. Możesz również użyć HTTPS, jeśli chcesz:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Dodaj następującą regułę do zapory sieciowej, Otwórz nowy monit cmd jako administrator i uruchom następujące polecenia:

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

Teraz uruchom Visual Studio jako Administrator. Kliknij prawym przyciskiem myszy plik projektu web projects i wybierz Properties. Przejdź do zakładki Web i kliknij Create Virtual Directory. Jeśli Visual Studio nie jest uruchomione jako Administrator, prawdopodobnie nie powiedzie się. Teraz wszystko powinno działać.

Tutaj wpisz opis obrazka

 4
Author: Ogglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-07 11:56:40

Możesz spróbować skonfigurować przekierowanie portów zamiast modyfikować konfigurację usługi IIS Express, dodając nowy HTTP.Zasady sys lub prowadzenie Visual Studio jako administrator.

Zasadniczo musisz przesłać IP:PORT Twoja strona działa na innym wolnym porcie na twoim komputerze, ale na zewnętrznej karcie sieciowej, a nie na localhost.

Rzecz w tym ,że IIS Express (przynajmniej w Windows 10) wiąże się z [::1]:port, co oznacza, że nasłuchuje na porcie IPv6. Musisz to wziąć pod uwagę.

Oto jak to działa - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html

Mam nadzieję, że to pomoże.
 4
Author: srmrco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 09:42:13

Mam problemy z używaniem IIS Express W Win 8.1 i zewnętrznym żądaniem.

Wykonuję następujące kroki, aby debugować zewnętrzne żądanie:

  1. Install IIS
  2. Skonfiguruj Visual Studio do korzystania z lokalnych usług IIS (Właściwości strony w projekcie www)
  3. tworzenie ekskluzywnych aplikacji w IIS do pracy z moją aplikacją
  4. w moim projekcie używam klienta Oracle I musi być 32bits (64 bity nie działają z Visual Studio) następnie muszę pozwolić 32 bit w aplikacji Basen
  5. Skonfiguruj Zaporę systemu Windows, aby zezwalała na żądania w porcie 80 (reguły przychodzące)

To działa!

 3
Author: Robson Douglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-03 19:51:16

Jeśli uruchamiasz Visual Studio z admina możesz dodać tylko

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

Lub

<binding protocol="https" bindingInformation="*:8443:*" />

Do

%userprofile%\My Documents\IISExpress\config\applicationhost.config
 2
Author: Andrii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-26 23:34:14

Miałem włączone lokalne usługi IIS, więc utworzyłem regułę przepisywania na moim porcie debugowania... Myślę, że jest to lepsze i fajniejsze niż inne metody, ponieważ łatwiej jest usunąć po zakończeniu rozwijania... Oto jak wygląda przepisywanie..

<rewrite>
    <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^dev/(.*)" />
            <action type="Rewrite" url="http://localhost:47039/{R:1}" />
        </rule>
    </rules>
</rewrite>

VS pozwala również na rozwój przy użyciu lokalnych usług IIS bezpośrednio (co pozwala na zdalne połączenia), ale z kolei zawsze musisz uruchomić go jako administrator... Nie podoba mi się to.

 2
Author: konzo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-04 09:30:47

Nie byłem w stanie obsłużyć żądań iis do innych użytkowników w mojej sieci lokalnej, wszystko, co musiałem zrobić (oprócz powyższego), to zrestartować router BT Hub.

 0
Author: Terry Kernan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-01 10:01:09

Jest to szalenie niesamowite, a nawet obejmuje HTTPS z ładnymi nazwami domen:

Http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

Naprawdę zajebiste części nie mogłem znaleźć nigdzie indziej więc na wypadek gdyby powyższy link kiedyś zniknął:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<url>
> 
> Examples: 1) Configure "http.sys" and "hosts" file for friendly
> hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl
> -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly  hostname "contoso": iisexpressadmincmd
> deleteFriendlyHostnameUrl -url:http://contoso:80/

Powyższe narzędzie zarejestruje certyfikat SSL dla Ciebie! Jeśli używasz opcji-UseSelfSigned, jest to bardzo proste.

Jeśli chcesz robić rzeczy w trudny sposób, nieoczywiste jest to, że musisz powiedzieć HTTP.SYS jakiego certyfikatu użyć, jak to:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Certhash to "odcisk kciuka", który można uzyskać z właściwości certyfikatu w MMC.

 0
Author: eselk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-03 05:18:34

Zrobiłem co następuje i udało mi się połączyć:

1) zmieniono Wiązanie konfiguracji IIS express z lokalnego hosta na '* '

Binding protocol= "http" bindowanie="*:8888:*"

2) zdefiniowana reguła przychodząca na zaporze, aby umożliwić konkretny port dla typu protokołu: tcp

3) Dodaj następujące polecenie, aby dodać konfigurację sieci dla Twojego portu: netsh http add urlacl url = http://*: 8888 / user=everyone

 0
Author: dhakalan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 20:02:08

Rozwiązałem ten problem używając podejścia odwrotnego serwera proxy.

Zainstalowałem serwer wamp i użyłem prostej funkcji odwrotnego proxy serwera WWW apache.

Dodałem Nowy port do nasłuchiwania serwera WWW Apache (8081). Następnie dodałem konfigurację proxy jako virtualhost dla tego portu.

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>
 0
Author: mustafacanturk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-09 08:24:06

[okno Właściwości projektu]

Do tworzenia przy użyciu VisualStudio 2017 i projektu NetCore API:

1) W Cmd-Box: ipconfig /all do określenia adresu IP

2A) wprowadź pobrany adres IP w zakładce Właściwości projektu-> debugowanie

2b) Wybierz Port i podłącz go do adresu IP z kroku 2a.

3) Dodaj regułę allow w firewallu, aby zezwolić na przychodzący ruch TCP na wybranym porcie (mój firewall wyzwalany dialogiem: "zablokuj lub Dodaj regułę do firewall"). Add będzie w tym przypadku zrobić sztuczkę.

Wadą powyższego rozwiązania:

1) Jeśli używasz dynamicznego adresu IP, musisz powtórzyć powyższe kroki w przypadku przypisania innego adresu IP.

2) Twój serwer ma teraz otwarty Port, o którym możesz zapomnieć, ale ten otwarty port pozostaje zaproszeniem dla niechcianych gości.

 0
Author: Paul Franke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-20 13:02:24