Visual Studio e debug in rete

Durante la fase di test di un’applicazione può essere utile accedere a IIS Express da remoto. Normalmente quando viene eseguito il debug da visual studio, IIS Express è eseguito come http://localhost:80, quindi con il binding sulla porta 80 di localhost
Da qualsiasi altro client di rete (ma anche da internet in caso di NAT), il debug non è possibile. E’ possibile configurare il binding di IIS, modificandone il file di configurazione
Nella directory della soluzione .NET troviamo la cartella nascosta denominata .vs .
Al suo interno, un’altra cartella denominata config 
La configurazione di IIS Express viene fatta utilizzando il file applicationhost.config.
E’ sufficiente ricercare la configurazione legata al binding modificando l’attributo “bindingInformation” da ‘localhost‘ a ‘*‘. In questo modo, IIS Express effettuerà il binding su tutte le interfacce di rete presenti sul nostro dispositivo.

Binding


A questo è necessario abilitare l’accesso all’url, tramite powershell:

  • aprire un terminale powershell (eseguito come amministratore)
  •  eseguire il comando: 

netsh http add urlacl url=http://*:18460/ user=everyone

Per l’accesso da altri pc della rete è necessario configurare il firewall del pc utilizzato per il debug, garantendo l’accesso alla porta impostata al passaggio precedente. A questo punto qualsiasi pc della rete potrà accedere alla webapplication in running e sarà possibile debuggarne gli steps.

Testare richieste Http con RequestBin

Recentemente mi sono imbattutto nel sito RequestBin che consente di testare le richieste http generate da servizi push, o per testare i nostri webhooks. Dalla home page è possibile creare il proprio indirizzo di test che può essere utilizzato dalle nostre applicazioni, ed eventualemente in forma privata solo dal brower corrente.

RequestBin

Una volta creato l’indirizzo viene anche mostrato il codice di esempio per effettuare le operazioni http (get, post, put, ecc…). L’Url creato consente di loggare e visualizzare l’ultima chiamata effettuata mostrando tutti i dati inviati compresi i seguenti campi dell’header:

  • Content-Type
  • Cf-Ipcountry
  • Postman-Token
  • Total-Route-Time
  • Cache-Control
  • Host
  • User-Agent
  • Cf-Connecting-Ip
  • Connection
  • Content-Length
  • Cf-Visitor
  • Connect-Time
  • Cf-Ray
  • Accept-Encoding
  • Cookie
  • Via
  • X-Request-Id
  • Accept

Un semplice sito internet, che consente con altrettanta semplicità di verificare i nostri servizi.