Visual Studio probeert IIS Express als een subproces te starten om je app te hosten, maar soms kan de geïntegreerde browser of debugger geen verbinding maken met localhost op de toegewezen poort. In plaats daarvan krijg je die vervelende foutmelding “Kan geen verbinding maken met webserver IIS Express”, wat je ontwikkelproces flink in de war schopt. Meestal ligt het aan configuratieproblemen — misschien bevat het applicationhost.config- bestand verouderde poortinformatie, of zijn er na een crash cache-instellingen in de verborgen .vs- map beschadigd geraakt, of erger nog, is je HTTPS-certificaat stilletjes verlopen.
Het is best frustrerend om dit uit te zoeken, omdat de oorzaak vaak gewoon een mismatch ergens is of verouderde informatie in de instellingen. Maar het goede nieuws is dat de meeste problemen met een paar simpele stappen op te lossen zijn. Afhankelijk van wat de verbindingsproblemen veroorzaakt, kun je een aantal dingen proberen. Als de ene methode niet werkt, werkt een andere misschien wel, dus het is de moeite waard om de lijst af te lopen totdat er iets werkt.
Kan geen verbinding maken met de IIS Express-webserver in Visual Studio.
Mocht je dit probleem tegenkomen, dan zijn hier enkele oplossingen die anderen hebben geholpen (en die jou wellicht ook kunnen helpen).
- Verwijder de beschadigde IIS Express-configuratiemap.
- Wis de projectspecifieke.vs-cachemap.
- Reset de Localhost-poortreservering.
- IIS Express repareren
Laten we de details eens bekijken.
Verwijder de beschadigde IIS Express-configuratiemap.
Visual Studio gebruikt een set XML-bestanden in %userprofile%\Documents\IISExpress\ om IIS Express op te starten. Als deze bestanden beschadigd raken – bijvoorbeeld na een crash of onjuiste afsluiting – kan VS de sitebindingen niet correct lezen, wat leidt tot verbindingsfouten. Door deze map te verwijderen, dwingt u Visual Studio om de volgende keer dat u een project start, nieuwe configuraties te genereren, wat het probleem vaak oplost.
- Sluit alle instanties van Visual Studio.
- Druk op de Windows-toets + R om het dialoogvenster ‘Uitvoeren’ te openen.
- Typ of plak: %userprofile%\Documents\IISExpress\ en druk vervolgens op Enter.
- Zoek in de geopende map de map ‘config’ en klik er met de rechtermuisknop op.
- Selecteer ‘Verwijderen’ in het contextmenu.
- Start Visual Studio nu opnieuw op, open je project en druk op F5 om te debuggen. Er wordt automatisch een nieuwe, lege configuratiemap aangemaakt, wat het probleem meestal oplost.
In sommige configuraties lost deze stap het probleem mogelijk niet direct op, of is het nodig om Visual Studio een paar keer opnieuw op te starten – Windows maakt het soms onnodig ingewikkeld.
Wis de projectspecifieke.vs-cachemap.
Visual Studio bewaart een verborgen cache in de map .vs in de projectmap. Deze cache bevat gebruikersinstellingen, debuginformatie en bindingen. Als deze cache verouderd raakt of niet meer overeenkomt met de huidige status van uw project – bijvoorbeeld na een wijziging van een branch of een gedeeltelijke herlaadactie – kunt u verbindingsfouten krijgen. Door deze map leeg te maken, bouwt Visual Studio de cache volledig opnieuw op, wat veel cachegerelateerde verbindingsproblemen oplost.
- Sluit Visual Studio af — zonder uitzonderingen.
- Navigeer naar de map waarin uw .sln- bestand zich bevindt.
- Ga in Bestandsverkenner naar het tabblad Weergave en schakel Verborgen items in. Hierdoor wordt de map .vs zichtbaar.
- Klik met de rechtermuisknop op de map .vs en kies Verwijderen.
- Heropen de oplossing en voer je project opnieuw uit. Visual Studio heeft een paar seconden nodig om de cache opnieuw op te bouwen, maar dit lost die hardnekkige verbindingsproblemen meestal op.
Houd er rekening mee dat dit bij sommige projecten de laadtijden tijdelijk iets kan vertragen, dus raak niet in paniek als het in het begin traag aanvoelt.
Reset de Localhost-poortreservering.
Windows houdt via de HTTP Server API bij welke URL’s gereserveerd zijn voor poorten die door IIS Express worden gebruikt. Als een poort, zoals http://localhost:5000, gereserveerd is door een ander proces of als er sprake is van een ‘weesreservering’, kan IIS Express er geen verbinding mee maken. Door de reservering te verwijderen, wordt het conflict opgelost en kan Visual Studio de poort correct gebruiken.
Open een opdrachtprompt met beheerdersrechten (druk op de Windows-toets, typ cmd, klik vervolgens met de rechtermuisknop en kies ‘Uitvoeren als beheerder’ ).
Identificeer de poort van uw app door de projecteigenschappen in Visual Studio te openen. Klik met de rechtermuisknop op uw project, ga naar Eigenschappen en zoek vervolgens onder het tabblad Foutopsporing de app-URL (bijvoorbeeld http://localhost:12345 ).
Voer dit commando uit (vervang [PORT_NUMBER] door uw daadwerkelijke poortnummer):
netsh http delete urlacl url=http://localhost:[PORT_NUMBER]/
Als het werkt, zou je een bericht moeten ontvangen dat de reservering is verwijderd. Start nu je project opnieuw op; IIS Express zal automatisch een nieuwe reservering aanvragen, hopelijk zonder conflicten.
IIS Express repareren
Soms raakt het HTTPS-certificaat dat IIS Express gebruikt verlopen of beschadigd (vooral na Windows-updates).Dit certificaat is wat browsers vertrouwen wanneer u uw project in HTTPS-modus uitvoert. Als het ongeldig of beschadigd is, zal uw browser het weigeren en geeft Visual Studio een verbindingsfout.
Dit is wat je moet doen:
- Sluit Visual Studio en alle geopende browsers.
- Open het Configuratiescherm, ga naar Programma’s > Programma’s en functies.
- Zoek IIS 10.0 Express (of IIS 8.0 Express ) in de lijst.
- Klik er met de rechtermuisknop op en selecteer ‘Repareren’.
- Volg de aanwijzingen. Hiermee worden de binaire bestanden hersteld en het SSL-certificaat voor localhost opnieuw gegenereerd.
- Als je klaar bent, start Visual Studio opnieuw op en probeer je HTTPS-project nogmaals uit te voeren. De browser zou het nieuwe certificaat moeten herkennen en je zult waarschijnlijk geen beveiligingsfouten meer zien.
En ja, soms verstoort een Windows-update je ontwikkelingscertificaten en poortreserveringen, dus het repareren van IIS Express is een goede algemene oplossing.
Waarom werkt IIS Express niet meer na een Windows-update?
Tja, Windows moet het natuurlijk wel leuk maken. Updates kunnen ervoor zorgen dat het localhost-ontwikkelingscertificaat verloopt of dat poortreserveringen zonder waarschuwing worden gewijzigd. Door IIS Express te repareren via Programma’s > Programma’s en functies wordt het certificaat opnieuw gegenereerd en worden defecte poortreserveringen verwijderd – en dat lost het probleem meestal op.
Hoe los ik de certificaatfout ‘localhost’ in IIS Express op?
Als uw HTTPS-localhost plotseling weigert het IIS Express-certificaat te vertrouwen, probeer dan IIS Express te repareren via dezelfde procedure als hierboven: ga naar Programma’s en functies, zoek IIS Express, klik er met de rechtermuisknop op en kies Repareren. Start daarna Visual Studio opnieuw en voer uw project opnieuw uit. Het nieuwe certificaat zou nu geaccepteerd moeten worden en de verbinding zou weer beveiligd moeten zijn.
Samenvatting
Problemen met de verbinding met IIS Express kunnen behoorlijk vervelend zijn, maar de meeste zijn met een paar kleine aanpassingen op te lossen. Het opschonen van configuratiebestanden, de cache, poortreserveringen of het repareren van IIS Express zelf doet vaak wonderen – ik sta er bijna van versteld hoe vaak deze stappen werken. Als een specifieke oplossing niet werkt, lost de volgende stap het probleem meestal wel op. En soms helpt het om alles na een reparatie opnieuw op te starten om de boel weer op orde te krijgen.
Samenvatting
- Verwijder de configuratiemap van IISExpress om de configuraties te resetten.
- Wis de verborgen .vs- cachemap in uw oplossing.
- Reset de poortreserveringen voor localhost via netsh.
- Repareer de IIS Express-installatie om certificaten en binaire bestanden te herstellen.
Tot slot
Hopelijk helpen deze stappen je om je IIS Express-verbinding weer aan de praat te krijgen. Meestal is het een combinatie van configuratie, cache of certificaten die problemen veroorzaken. Niets ernstigs, maar wel frustrerend als het zonder waarschuwing gebeurt. Ik hoop dat dit iemand helpt om weer zonder problemen te kunnen programmeren.