Entwickelt man einen Webservice mit Visual Studio und C#, so wird dieser üblicherweise in einem IIS Express gehostet. Dieser lässt Zugriffe von außen standardmäßig nicht zu; manchmal ist genau das aber gewünscht, wenn man beispielsweise von einem Docker-Container auf den Webservice zugegriffen werden soll.
Es ist möglich, den IIS Express so zu konfigurieren, dass er auch externe Zugriffe zulässt: http://blogs.iis.net/vaidyg/serving-external-traffic-with-webmatrix-beta. Das sorgt beim regulären Entwicklungsbetrieb aber gerne mal für Probleme.

Sehr viel einfacher funktioniert es über das Tool “IIS Express-Proxy”: https://github.com/icflorescu/iisexpress-proxy. Dies ist ein npm-Modul, das über die Kommandozeile installiert und gestartet wird. Dabei werden die zu verwendenden Ports definiert:

iisexpress-proxy <zielport> to <listenport>

Anschließend läuft der Proxy bis er wieder beendet wird.

C:\Users\username>iisexpress-proxy 1689 to 8888
IIS Express Proxy 1.1.8
Proxying http://localhost:1689 to network interfaces:
Ethernet: 192.168.1.52:8888
VirtualBox Host-Only Network: 192.168.56.1:8888
VirtualBox Host-Only Network #2: 192.168.99.1:8888
Ethernet 3: 192.168.7.1:8888
VMware Network Adapter VMnet1: 192.168.62.1:8888
VMware Network Adapter VMnet8: 192.168.100.1:8888
Listening... [press Control-C to exit]

Die Firewall muss natürlich trotzdem noch separat angepasst werden.

Zusatzbonbon: Möchte man von einem Docker-Container, der in einer VM auf dem Entwicklungsrechner läuft, auf einen Webservice auf dem Entwicklungsrechner zugreifen, so muss dafür nicht mal die Firewall angepasst werden, da sich der Proxy an alle Netzwerkadapter bindet!