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

466

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

TedTel
źródło
25
Jest do tego bezpłatne rozszerzenie VS, które napisaliśmy visualstudiogallery.msdn.microsoft.com/…
Jim W mówi o przywróceniu Moniki
@JimW Jim, jesteś twórcą wtyczki? Czy mógłbyś wyjaśnić, jak działa ten cud inżynierii oprogramowania?
Ian Warburton,
@IanWarburton dziękuje, że nazwałeś to cudem! Jest to odwrotny serwer proxy.
Jim W mówi o przywróceniu Moniki
@JimW Dziękujemy za jego utworzenie.
Ian Warburton,
@JimW Wypróbowałem wtyczkę i zrobiłem wszystko tak, jak powiedziałeś w samouczku. Ale
nadal

Odpowiedzi:

403

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

W systemach Vista i Win7 uruchom następujące polecenie z monitu administracyjnego:

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

W przypadku XP najpierw zainstaluj Narzędzia obsługi systemu Windows XP z dodatkiem Service Pack 2. Następnie uruchom następujące polecenie z monitu administracyjnego:

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

Damian Edwards
źródło
121
W przypadku błędu 503 zobacz: stackoverflow.com/questions/5442551/…
deerchao 12.10
5
Czy istnieje netshpolecenie zezwalające na połączenia z dowolną nazwą hosta?
Pułkownik Panic
33
Dla przypomnienia, jeśli masz komputer z systemem Windows w języku innym niż angielski, parametr user={PARAM_USER}będzie w twoim własnym języku.
GoRoS
7
Użycie symboli wieloznacznych w parametrze url (np. Url = http: // *: 8080 /) spowoduje, że połączenia będą działać zarówno dla nazwy hosta, jak i adresu IP komputera.
Anders
2
W przypadku niepowodzenia polecenia (prawdopodobnie błąd 1789) należy wziąć pod uwagę, że polecenie oczekuje dla użytkownika w języku komputera. Jeśli na przykład Twój komputer jest w języku portugalskim, użyj user=todoszamiast user=everyone.
Vitor Canova
349

Istnieją trzy zmiany, których możesz potrzebować.

  1. Powiedz IIS Express, aby powiązał się ze wszystkimi adresami IP i nazwami hostów. W twoim .configpliku Zazwyczaj:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Znajdź element wiążący witryny i dodaj

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

Gdzie everyonejest grupa okien. Użyj podwójnych cudzysłowów dla grup ze spacjami takimi jak „Tout le monde”.

  1. Zezwól IIS Express na zaporze systemu Windows.

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

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

Teraz, kiedy zaczniesz iisexpress.exe, powinieneś zobaczyć komunikat taki jak

Pomyślnie zarejestrowano adres URL „http: // *: 8080 /” dla aplikacji „hello world” application „/”

Pułkownik Panika
źródło
22
Uwaga Jeśli używasz zlokalizowaną wersję systemu Windows parametru users=everyonena netsh(drugi krok) może spowodować błąd 1789. Rozwiązanie to przełożyć everyonedo odpowiedniej nazwy grupy w języku polskim.
mflodin
5
W jaki sposób projekt Visual Studio akceptuje to powiązanie? Jeśli we właściwościach projektu, które określisz Project Url, wprowadzę gwiazdkę dla nazwy hosta, spowoduje to błąd. Jeśli wprowadzę cokolwiek innego, spróbuje utworzyć nowy katalog wirtualny. Nie łączy się z wpisem w application.config.
Trevor Elliott
20
Aby działało w programie Visual Studio, musisz użyć nazwy hosta komputera w kroku 1 bindingInformation="*:8080:hostname"i 2 url=http://hostname:8080/, a we właściwościach projektu internetowego Visual Studio na karcie WWW ustaw Adres URL projektu na http://hostname:8080/. Usuń *adres URL, jeśli już go utworzyłeś; to nie zadziała, jeśli masz oba. Wreszcie adres URL, pod którym się znajdujesz w przeglądarce internetowej, musi odnosić się do nazwy hosta, a nie localhost.
Joe Daley
5
Musiałem także mieć linię localhost w elemencie powiązań, w przeciwnym razie program Visual Studio 2013 próbował utworzyć zduplikowany wpis witryny. np .:<binding protocol="http" bindingInformation="*:8080:localhost" />
kristianp
3
Musiałem także uruchomić program Visual Studio jako administrator, ale ta odpowiedź była najdokładniejsza.
dlsso,
127

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

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

Korzystanie z serwera proxy IIS Express wszystko staje się dość proste - nie trzeba „netsh http add urlacl url = vaidesg: 8080 / user = wszyscy” lub zepsuć się z „applicationhost.config”.

Po prostu wydaj to w wierszu polecenia:

iisexpress-proxy 8080 to 3000

… A następnie możesz skierować urządzenia zdalne na http: // vaidesg: 3000 .

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

Ionut-Cristian Florescu
źródło
3
Dzięki za świetne rozwiązanie!
Czas letni
1
I mogę dodać, że takie rozwiązania Node.js są jedynymi, które działają niezawodnie na platformie Azure, ponieważ platforma Azure tworzy automatyczne generowanie pliku applicationhost.config i usuwa zmiany powiązań.
TheHansinator,
1
Zacząłem używać IIS Express Proxy na komputerze Mac wraz z ngrok po tym, jak ngrok nie działał zgodnie z oczekiwaniami (ponieważ nie wykonałem wymaganej manipulacji konfiguracją IIS Express). Bardzo przydatny! Dziękuję Ci.
codingoutloud
1
To zdecydowanie najłatwiejsze rozwiązanie. Wolę nie zadzierać z applicationhost.config, jeśli nie muszę.
skalpin
4
Doskonałe rozwiązanie! Teraz wracam i rozwiązuję bałagan, który zrobiłem z IIS Express.
Mitch Stewart
123

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

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

npm install -g iisexpress-proxy

następnie

iisexpress-proxy 51123 to 81

zakładając, że projekt Visual Studio otwiera się na localhost: 51123 i chcesz uzyskać dostęp do zewnętrznego adresu IP xxxx: 81

Edycja: Aktualnie używam ngrok

zestaw narzędzi
źródło
7
bezbolesne rozwiązanie
bahadir
4
Najłatwiejsze rozwiązanie, jakie mogłem znaleźć. Prawdopodobnie powinien zmienić nazwę pakietu na coś w rodzaju web-proxy, ponieważ można go używać do czegoś więcej niż do przekazywania iisexpress :)
Mario Tacke
8
@xgp - Cześć, jestem autorem iisexpress-proxy :-) Czy udało ci się w końcu sprawić, by działał dla Ciebie? Musisz zamknąć i ponownie otworzyć wiersz polecenia lub w rzadkich przypadkach zrestartować system operacyjny. Napisz do mnie na stronie projektu ( github.com/icflorescu/iisexpress-proxy ), jeśli masz dodatkowe pytania, a ja postaram się pomóc, jeśli będę miał czas.
Ionut-Cristian Florescu
1
Dziękujemy wszystkim za korzystanie z niego i za miłe słowa :-). @MarioTacke - tak, wiem, ale więcej osób jest w stanie go znaleźć, po prostu google-ing, jeśli nazywa się iisexpress-proxy :-)
Ionut-Cristian Florescu
1
Przy okazji, to nie działa z uwierzytelnianiem Windows.
Tom
35

Na marginesie tego:

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

Działa to tylko w angielskich wersjach systemu Windows. Jeśli korzystasz ze zlokalizowanej wersji, musisz zastąpić słowo „wszyscy” czymś innym, na przykład:

  • „Iedereen” przy użyciu wersji holenderskiej
  • „Jeder” przy korzystaniu z niemieckiej wersji
  • „Mindenki” przy użyciu wersji węgierskiej

W przeciwnym razie pojawi się błąd (błąd utworzenia SDDL nie powiódł się, błąd: 1332)

breez
źródło
33

Dobrym źródłem jest praca z SSL w czasie programowania jest łatwiejsza dzięki IISExpress Scott Hanselman.

To, czego szukasz, to sekcja Uzyskiwanie usług IIS Express do obsługi zewnętrznej przez port 80

Luke Sampson
źródło
Ten post na blogu zaleca izolowanie portu 80 na „IISExpressWeb.exe”. W obecnej wersji IIS Express brakuje exe o tej nazwie - jest tylko IISExpress.exe i IISExpressTray.exe. Wyodrębnienie połączeń dla obu uniemożliwia połączenie z zewnątrz; wyeliminowanie ograniczenia procesu pozwala na połączenia. Jaki jest właściwy plik .exe, na który celować?
Chris Moschini
33

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

  1. Uzyskaj adres IP hosta: ipconfigw wierszu polecenia systemu Windows
  2. Iść do

    $(SolutionDir)\.vs\config\applicationHost.config
  3. Odnaleźć

    <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: za <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    pomocą swojego adresu IP

  5. Uruchom Visual Studio z prawami administratora i wszystko powinno działać
  6. Być może poszukaj problemów z zaporą, jeśli próbujesz połączyć się zdalnie
Daniel Eisenreich
źródło
20

Rozwiązałem to dzięki instalacji „Conveyor by Keyoti” w Visual Studio Professional 2015. Conveyor generuje adres REMOTE (twoje IP) z portem (45455), który umożliwia żądanie zewnętrzne. Przykład:

wprowadź opis zdjęcia tutaj

Conveyor pozwala testować aplikacje internetowe z zewnętrznych tabletów i telefonów w sieci lub z emulatorów Androida (bez http://10.0.2.2:<hostport>)

Kroki znajdują się w następującym linku:

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

Ronny Morán
źródło
@kilianeller kliknij link w odpowiedzi i zadaj pytanie, możemy Ci pomóc.
Jim W mówi przywrócenie Moniki
Workst !!, udowadniam wszystkie inne rozwiązania (zmiana applicationhost.config, netsh, adres IPv6 ..) i nic, ale instalacja tego w końcu działa, jedynym małym problemem było nieprawidłowe przekierowanie adresu IP, ale nie poważny problem.
Ion
Naprawdę łatwy w instalacji. Upewnij się tylko, że dodajesz certyfikat do zdalnej przeglądarki zgodnie z instrukcjami na stronie rozszerzenia.
Andres
Nie mogę w to uwierzyć, to działa !!! TAK PROSTO, TAK ELEGANCKI !!! Ostatnie 5 godzin spędziłem tylko na poszukiwaniu pustych rozwiązań i nareszcie to rozwiązałem!
Ziggy192
10

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

Dołącz inną <binding />w konfiguracji IIS Express

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

Na koniec musisz uruchomić program Visual Studio jako administrator

Bruce
źródło
Niestety nie wydaje mi się to działać. Nadal nie mogę nawiązać połączenia, gdy próbuję uzyskać dostęp do mojego lokalnego
adresu
@ThomasTeilmann w Visual Studio musiałem otworzyć właściwości aplikacji internetowej i pod zakładką WWW zmienić „Project Url”, aby użyć alternatywnej nazwy hosta zamiast localhost.
Sam
@ThomasTeilmann, Oh, i myślę, że musisz przejść do niego według nazwy hosta zamiast adresu IP.
Sam
Próbowałem też obu tych rzeczy, ale to nie zadziałało dla instancji chmury: / Dzięki jednak
Thomas Teilmann
To była odpowiedź dla mnie (tj. Uruchom VS jako administrator) - dzięki @Bruce. Ponadto musiałem ręcznie naprawić ustawienia zapory. W moim przypadku (tj. Testowanie, czy mój iPhone może przeglądać moją maszynę programistyczną) otwarcie portu 8080 w zaporze nie działało (huh?), Ale otwarcie dostępu przez ip (tj. Zakres> Lokalne adresy IP = 10.0.0.0/24 = mój dom sieć) załatwiła sprawę.
Ilan
8

Pomogło mi kliknięcie prawym przyciskiem myszy ikony „IISExpress” „Pokaż wszystkie aplikacje”. Następnie wybrałem stronę i zobaczyłem, z którego pliku aplicationhost.config korzysta, a poprawka poszła idealnie.

Konfiguracja IISExpress

Emmanuel
źródło
2
Ta odpowiedź wskazała mi inne rozwiązanie, edycję applicationhost.config, aby zaakceptować : 55665: zamiast *: 55665: localhost
Deko
Dzięki @Deko - twój komentarz w połączeniu z poleceniem netsh wspomnianym w kilku innych odpowiedziach sprawił, że zadziałało.
Marcel Popescu,
8

Oto, co zrobiłem dla systemu Windows 10 z Visual Studio 2015, aby umożliwić dostęp zdalny, zarówno za pomocą http, jak i https:

Pierwszym krokiem jest powiązanie aplikacji z wewnętrznym adresem IP. Uruchom cmd->, ipconfigaby uzyskać adres. Otwórz plik /{project folder}/.vs/config/applicationhost.configi 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 powiązania w obszarze bindings. Możesz także 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, otwórz nowy cmdmonit 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 as Administrator. Kliknij prawym przyciskiem myszy plik projektu WWW i wybierz Properties. Przejdź do Webzakładki i kliknij Create Virtual Directory. Jeśli program Visual Studio nie zostanie uruchomiony jako administrator, prawdopodobnie zakończy się niepowodzeniem. Teraz wszystko powinno działać.

wprowadź opis zdjęcia tutaj

Ogglas
źródło
Pracował dla mnie! :) Jest też fajny post tutaj: blog.kloud.com.au/2017/02/27/...
Leniel Maccaferri
Próbowałem wszystkiego innego, w tym ngrok, bezskutecznie. Działa to przy pierwszej próbie.
kooldave98
5

Przyjęta odpowiedź na to pytanie stanowi przewodnik umożliwiający IIS Express pracę z webmatrix. Uważam ten przewodnik za bardziej przydatny, gdy próbuję go uruchomić z VS 2010.

Właśnie wykonałem kroki 3 i 4 (uruchamianie IIS Express jako administrator) i musiałem tymczasowo wyłączyć zaporę, aby działała.

Czad
źródło
Instrukcje, które łączysz, aby utracić możliwość debugowania z Visual Studio, co przynajmniej moim zdaniem czyni to bezcelowe - używanie IIS lub innego zdalnego serwera byłoby tak dobre lub lepsze (ponieważ możesz skonfigurować zdalne debugowanie przynajmniej na IIS). Gdyby IIS Express nie wymagał uprawnień administratora do działania bez hosta lokalnego, działałoby to po prostu. Bardzo irytujące.
Chris Moschini
Właśnie tego szukałem - dzięki! Używam IIS Express z Visual Studio 2010 i zamierzałem przetestować aplikację ASP.NET MVC3 w mojej sieci LAN, i to było to, czego potrzebowałem, aby to zadziałało :)
Lasse Christiansen
5

Możesz spróbować skonfigurować przekierowanie portów zamiast modyfikować konfigurację IIS Express, dodawać nowe reguły HTTP.sys lub uruchamiać Visual Studio jako administrator.

Zasadniczo musisz przekierować IP:PORTswoją stronę internetową do innego wolnego portu na twoim komputerze, ale na zewnętrznej karcie sieciowej, a nie localhost.

Chodzi o to, że IIS Express (przynajmniej w systemie Windows 10) wiąże się z [::1]:porttym, że nasłuchuje na porcie IPv6. Musisz wziąć to pod uwagę.

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

Mam nadzieję, że to pomoże.

srmrco
źródło
Korzystam z systemu Windows 10 i kluczem było powiązanie hosta lokalnego z IPv6. Dzięki!
TomaszGuzialek
Komputer, który próbowałem skonfigurować, miał inny adres lokalny. Nazwano go „local-dev”. Musiałem tylko powiązać dodać v4tov6 listenport = 3000 connectaddress = local-dev connectport = 60000, aby to działało. Świetny post, dziękuję!
Anika
4

Najprostszym i najfajniejszym sposobem, jaki znalazłem, było użycie (konfiguracja zajmuje 2 minuty):

https://ngrok.com/

Będzie działał z każdym działającym na localhost. Po prostu zarejestruj się, uruchom trochę kalkulatora, a cokolwiek uruchomisz na localhost, otrzyma publiczny adres URL, do którego możesz uzyskać dostęp z dowolnego miejsca.

Jest to dobre do pokazywania rzeczy swoim zdalnym kolegom z zespołu, bez zbędnego konfigurowania usług IIS lub zapór ogniowych. Chcesz zatrzymać dostęp, po prostu zakończ plik wykonywalny.

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -host-header=localhost 89230

zakładając, że 89230 jest twoim portem IIS Express

Możesz także uruchomić wiele portów, nawet w ramach bezpłatnego abonamentu

Artur Kędzior
źródło
1
Kto by pomyślał, że będę musiał przeczytać tak wiele odpowiedzi, dopóki nie znajdę rozwiązania ...
alexkovelsky
3

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

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

  1. Zainstaluj IIS
  2. Skonfiguruj Visual Studio do korzystania z lokalnych usług IIS (właściwości strony w projekcie sieci Web)
  3. Utwórz ekskluzywny AppPool w IIS do pracy z moją aplikacją
  4. W moim projekcie korzystam z Oracle Client i muszę mieć 32 bity (64 bity nie działają z Visual Studio), a następnie muszę pozwolić 32 bity w puli aplikacji
  5. Skonfiguruj zaporę systemu Windows, aby zezwalać na żądanie na porcie 80 (reguły przychodzące)

To działa!

Robson Douglas
źródło
2

Jeśli uruchamiasz Visual Studio z poziomu administratora, możesz po prostu dodać

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

lub

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

w

%userprofile%\My Documents\IISExpress\config\applicationhost.config
Andrii
źródło
1
Zastosowałem tę konfigurację, $(SolutionDir).vs\config\applicationHost.configa także musiałem otworzyć port (8443) aplikacji w zaporze systemu Windows.
Tonatio
2

Miałem włączone lokalne IIS, więc właśnie utworzyłem regułę przepisywania do mojego portu debugowania ... Myślę, że jest to lepsze i fajniejsze niż inna metoda, ponieważ łatwiej jest je usunąć po zakończeniu programowania ... 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 także na tworzenie bezpośrednio przy użyciu lokalnego IIS (który następnie pozwala na zdalne połączenia), ale z kolei zawsze musisz uruchomić go jako administrator ... Nie podoba mi się to.

konzo
źródło
To też jest moje ulubione rozwiązanie, dziękuję :) Po prostu musiałem najpierw włączyć Odwrotny serwer proxy dla moich usług IIS, a następnie dodać tę regułę do pliku web.config.
Mahdi Ghiasi
1

Rozwiązałem ten problem, stosując podejście odwrotnego proxy.

Zainstalowałem serwer Wamp i korzystałem z prostej funkcji odwrotnego proxy serwera WWW Apache.

Dodałem nowy port do słuchania 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>
mustafacanturk
źródło
1

Zrobiłem wszystkie te kroki i nic mi nie pomogło. A to, czego potrzebuję, to po prostu uruchomić moją aplikację za pośrednictwem IIS Express ...

wprowadź opis zdjęcia tutaj

Mam nadzieję, że to pomoże.

Maksym Labutin
źródło
0

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

Terry Kernan
źródło
0

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

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

Naprawdę niesamowite części, których nie mogłem znaleźć nigdzie indziej na SO, na wypadek gdyby powyższy link 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 dla Ciebie certyfikat SSL! Jeśli użyjesz opcji -UseSelfSigned, jest to bardzo łatwe.

Jeśli chcesz robić rzeczy trudniej, nieoczywistą częścią jest to, że musisz powiedzieć HTTP.SYS, jakiego certyfikatu użyć, na przykład:

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

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

eselk
źródło
0

Wykonałem następujące czynności i udało mi się połączyć:

1) zmieniono powiązanie ekspresowej konfiguracji usług IIS z hosta lokalnego na „*”

protokół wiązania = „http” bindInformation = „*: 8888: *”

2) Zdefiniowana reguła ruchu przychodzącego w zaporze ogniowej, aby umożliwić określony port dla typu protokołu: tcp

3) Dodaj następującą komendę, aby dodać konfigurację sieci dla swojego portu: netsh http add urlacl url = http: // *: 8888 / user = wszyscy

Dhakalan
źródło
Ponieważ przychodzisz do tego pytania 6 lat po tym, jak zostało zadane, i jest już 12 innych odpowiedzi, najlepiej byłoby, gdybyś edytował swoją odpowiedź, aby wyjaśnić, w jaki sposób twoja odpowiedź działa lepiej niż pozostałe 12 (a przynajmniej w jaki sposób jest inny).
Heretic Monkey
0

Innym sposobem na uzyskanie dostępu do zewnętrznych żądań jest użycie IIS zamiast IIS Express. W moim studiu wizualnym mogę łatwo się przełączać.

wprowadź opis zdjęcia tutaj

PJ3
źródło
Używam VS2019.
PJ3
-1

[okno właściwości projektu]

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

1) W Cmd-Box: ipconfig / all, aby określić adres IP

2a) Wprowadź pobrany adres IP we właściwościach projektu-> Karta debugowania

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

3) Dodaj regułę zezwalania w zaporze, aby zezwolić na ruch przychodzący TCP na wybrany port (moja zapora uruchomiła się z oknem dialogowym: „Blokuj lub dodaj regułę do zapory”). Add zrobi w takim przypadku lewę.

Wada powyższego rozwiązania:

1) Jeśli używasz dynamicznego adresu IP, musisz powtórzyć powyższe kroki, na wypadek gdyby przypisano inny adres IP.

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

Paul Franke
źródło