recently I decided to move my ASP NET Core solution to new place, and obviously, something went wrong.
In launchSettings.json
file there were specified:
"iisExpress": {
"applicationUrl": "http://localhost:53985",
"sslPort": 44325
}
When I moved whole solution, together with this file, I got connection reset error (yes, it was for SSL).
When I changed it to something new, eg. 44330
, it worked.
Using netsh http show sslcert
I see that there 44330
is specified, but 44325
isn't. So why I can't re-use it?
After moving many projects frequently, I will run out from ports to use! What's the remedy for that?
Copied from comment with more details.
Requests to http://localhost:44325
can be reset if HTTP.sys cannot find a valid certificate bind to that port. Since you confirmed with netsh
that indeed such a certificate is missing, we then know the exact cause of the reset error.
The initial certificate mapping was created for 44300-44399 by IIS Express installer, so VS always assumes port 44325 has a certificate associated. However, it is pretty difficult to tell why now the certificate mapping is missing, as anything can change HTTP.sys settings.
The solution is to recreate a certificate mapping with netsh
for port 44325 (you can refer to other certificate mappings to learn what parameters you need).