Debuggen mit HTTPS in IIS Express
Published on Monday, September 19, 2016 4:56:29 AM UTC in Programming & Tools
Da der von ASP.NET Core verwendete Webserver Kestrel typischerweise in einer Reverse-Proxy-Konfiguration zusammen mit altbekannten Webservern wie etwa IIS verwendet wird, übernehmen letztere diverse fortgeschrittene Themen wie etwa auch die SSL-Terminierung. Um also zur Entwicklungszeit SSL-Funktionen mittesten zu können, reicht es nicht mehr aus, nur Kestrel zu starten. Stattdessen verwendet man für gewöhnlich IIS Express, der ebenfalls SSL unterstützt und problemlos funktioniert. Normalerweise.
Selbstverständlich ist heutzutage nichts mehr normal, und so erhielt ich nach dem Aktivieren von SSL und dem Starten einer Anwendung mit dem Debugger aus Visual Studio heraus die nichtssagende Fehlermeldung:
An error occurred attempting to determine the process id of <Anwendungsname.exe> which is hosting your application.
Und das war's. Leider handelt es sich um eine der typisch generischen Nachrichten, die alle möglichen Ursachen haben können. So findet man im Netz auch Tipps dazu, lock-Dateien zu löschen, NuGet-Pakete zu aktualisieren, die web.config zu ändern und allerlei anderen Hokus-Pokus, der in diesem Fall nicht weiterhilft.
Die Lösung ist trivial und im Issue #1608 auf GitHub beschrieben: es handelt sich (offensichtlich!) um einen Zertifikatsfehler, weil IIS Express für die SSL-Unterstützung ein eigenes Zertifikat ausstellt. Der im Issue beschriebene manuelle Weg, um das Zertifikat lokal zu installieren, war bei mir gar nicht nötig. Startet man die Anwendung ohne angehängten Debugger, erscheinen die folgenden zwei Dialoge:
Umrühren, fertig! Schon funktioniert das Debugging auch mit SSL.