M1lls
M1lls

Reputation: 573

Unable to launch IIS Express Web Server - Failed to Register URL - Cannot create a file when that file already exists | VS Community 2017

In VS Community 2017 (v15.9.26) I am unable to debug as IIS Express Web Server Produces the following error.

Output for IIS Express: Failed to register URL "localhost:xxxxx/" for site. Error description: Cannot create a file when that file already exists. (0x800700b7)

enter image description here

Steps to try to resolve the issue

  1. Clean, Rebuild, Restart VS, Restart Computer
  2. Deleted the IISExpress folder and re-ran VS SA Source
  3. Deleted the .vs folder and re-ran VS
  4. Created a new virtual directory SA Source
  5. Re-cloned repo in a new directory and started from scratch
  6. Running netsh http show urlacl showed no other process using port
  7. Removed the ComponentModelCache from the VS AppData
  8. Re-installed VS Community 2017
  9. Implemented a confirmed working applicationhost.config with updated references to my paths, still same port issue.
  10. Re-installed IIS 10.0 Express
  11. Turned off anti-virus

I should note that I have three startup projects running. Two of the projects (with different ports) run fine so I can rule out firewall or SSL issues. The third startup application only produces this error.

After trying all 7 steps and resting my computer multiple times I am stuck. Any further solutions/fixes to try would be greatly appreciated!

Upvotes: 7

Views: 16271

Answers (4)

skillworks
skillworks

Reputation: 392

I was repeatedly getting this even after changing ports, added new projects, restarted winnat, etc. But ultimately the thing worked for me is;

  1. Close the solution
  2. Delete .vs folder at solution level
  3. Re open the solution and run the app.

Upvotes: 3

Aftab Ahmed Kalhoro
Aftab Ahmed Kalhoro

Reputation: 336

To resolve that error, perform following steps

  1. Find process who is using the port
  • Open PowerShell as an Administrator
  • Execute command Get-Process -Id (Get-NetTCPConnection -LocalPort <portno>).OwningProcess
  • Look for ProcessName column in output
  1. Kill Process to release the port
  • Open Command prompt as an Administrator
  • Execute command taskkill -f -t -im <processname> where processname is same as retrieved by poweshell command. In my case it was devenv.exe

NOTE: Same process may have other ports in use also. Above command will release all ports

Upvotes: 1

Ranjini
Ranjini

Reputation: 33

These steps solved this issue:

  1. Delete the applicationhost.config in the <project_folder>.vs\config\applicationhost.config
  2. Go to the properties of the project, navigate to the Web Tab, In the Use Local IIS Web Express option. Make sure to give the correct URL and click on Create Virtual Directory
  3. Now Run the application, voila it worked for me!. Hope this works for you as well.

Upvotes: 2

M1lls
M1lls

Reputation: 573

I found two temporary workarounds in order to bypass the VS error.

  1. Assign a different port number to the application
  2. Comment out the specific binding protocol in the .vs\config\applicationhost.config

I am still looking for a more sustainable solution.

Upvotes: 4

Related Questions