Tramite ngrock è possibile esporre una URL interna sulla rete pubblica, in questo modo è possibile testare il sito locale da qualsiasi punto in internet e da dispositivi mobili.

IIS

Ad esempio avendo un sito su IIS che risponde all'indirizzo http://localhost:2222 è possibile esporlo su internet con uno di questi comandi

DOS / Batch file

ngrok http 2222

ngrok http http://localhost:2222

ngrok http https://localhost:2222
verrà mostrata la URL pubblica, simile a questa https://1bb8-18-16-12-137.ngrok.io , accessibile anche in https.

Text

ngrok by @inconshreveable                                                                               (Ctrl+C to quit)

Session Status                online
Session Expires               1 hour, 34 minutes
Version                       2.3.40
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://1bb8-18-16-12-137.ngrok.io -> http://localhost:59024
Forwarding                    https://1bb8-18-16-12-137.ngrok.io -> http://localhost:59024

Connections                   ttl     opn     rt1     rt5     p50     p90
                              12      0       0.00    0.00    1.52    429.91

HTTP Requests
-------------

GET / 200 OK
Attenzione, se non si paga un abbonamento, la URL pubblica cambierà ad ogni avvio di ngrok e la sessione ha una durata limitata (Session Expires).
Da notare che il sito risulta accessibile sia in http che in https con certificato valido anche se il sito interno è solo in http (Forwarding).

Visual Studio

Se si sta eseguendo il debug di un sito in Visual Studio questo avrà una URL di questo tipo https://localhost:44334 quindi si potrebbe usare ngrock in questo modo

DOS / Batch file

ngrok http https://localhost:44334
ma ci si rende subito conto non funziona e si ottiene questo messaggio

Forwarding to local port 443 or a local https:// URL is only available after you sign up.
Sign up at: https://dashboard.ngrok.com/signup

If you have already signed up, make sure your authtoken is installed.
Your authtoken is available on your dashboard: https://dashboard.ngrok.com/get-star...ur-authtoken

ERR_NGROK_340
a questo punto la soluzione è creare un account su ngrock oppure configurare Visual Studio per usare una URL interna che non è in https come ad esempio http://localhost:23819

DOS / Batch file

ngrok http http://localhost:23819
anche in questo caso però, provando a richiamare la URL pubblica, si ottiene questo messaggio

Bad Request - Invalid Hostname

HTTP Error 400. The request hostname is invalid.
quindi manca ancora un passaggio per esporre i siti in esecuzione da Visual Studio.

Soluzione

Il comando completo è questo che usa il parametro -host-header nella forma

DOS / Batch file

ngrok http -host-header="localhost:<port>" <port>
ad esempio

DOS / Batch file

ngrok http -host-header="localhost:23819" 23819

.Net Core

I progetti in .Net Core sono configurati per fare sempre il redirect su https, quindi non si raggiungerà mai il sito in http.

Per cambiare questo comportamento è necessario commentare questa riga:

C#

app.UseHttpsRedirection();
Attenzione disabilitare questa riga solo in debug, va assolutamente ripristinarlo in produzione.

Web Interface

Una volta che ngrock è in esecuzione è possibile accedere ad una pagina di monitoring (http://127.0.0.1:4040) con il dettaglio di tutte le richieste
Monitoring
Monitoring
Tags:
.NET Core26
Potrebbe interessarti anche: