64
votes

I have asp.net web application project in visual studio 2012. When I want to start it, I have the following error:

Unable to launch the IIS Express Web server: Port"4012" is in use

This problem came from nothing.How can I resolve it ?

21
have you tried to change the port number? -->stackoverflow.com/questions/2920610/…Edwin
@Edwin That should work for development server, not for IIS Express. Or has it been changed now in VS2012?Steve
Here's another solution: stackoverflow.com/questions/4968804/…Edwin
It is very strange, yesterday I switched off the computer and all workded fine but today I switched on and this came from nothing. I don't know what to do...TheChampp
Do you have your browser open?Steve

21 Answers

37
votes

From the MSDN library

Visual Studio cannot guarantee that the port you specify will be available when you run your file-system Web site. If the port is in use when you run a page, Visual Studio displays an error message.

To change the port used by IIS Express to run your program you should follow the procedure outlined by this article on MSDN

How to: Specify a Port for the Development Server

In short, we need to edit the file %systemdrive%:\Users\<username>\Documents\IISExpress\config and change the binding information found in this file and change other configurations for the IIS Express.

As a consequence of this not so simple way to fix the problem, I recommend to close the application that tries to use that port access on you dev computer. Look for specific tools like TCPView from Microsoft that could help to spot the application that grabbed your port. Often it is only the browser

50
votes

I was having similar problem in visual studio 2012:

ERROR: " Unable to launch IIS Express web server.

Failed to register URL http://localhost:1030/ for site "MySite" application "/". Error Description: The process cannot use file because it is being used by another process. (0x85968574) "

REASON : Actually this port numbers are dynamically generated at runtime. It dosent guranteed to be available. If it is acquires by some other process project wont run. So we need to try at another port.

SOLUTION : There are various solution i found on internet but problem remains unsolved. Finally I tried following solution :

  1. Right click on project in solution Explorer -> Properties
  2. Click on to Web (On LHS).
  3. Look at local IIS Web Server (Which would be radio btn selected by default).
  4. Change port no of project Url e.g : http://localhost:1030/ to http://localhost:45896/ (Possibly Higher than 1024)
  5. Save changes and run application.

This makes changes in IIS config files and wherever needed automatically so we don't need to change any code explicitly. That's work for me hope will work for You too.

13
votes

Run "netstat -b" from the command prompt to see what application is using port 4012. If you kill the process IIS Express will be able to launch using port 4012.

8
votes

Killing the IIS Express Worker Process solves this for me; I run into this while trying to debug two concurrent instances of Visual Studio 2015 and switching between the two web solutions.

If this is a constant problem then Kedar's answer of modifying the solution is better, but in a pinch, for a code review, etc I prefer this.

IIS Express Worker Process

6
votes

One solution is to delete or clear the history in your browser. Then, restart the Visual Studio and re-run your application.

If this solution doesn't work, then it's time for you to change the port number for your development server (IIS Express).

I hope it helps you.

2
votes

If this situation is sudden (everything works ok, but suddenly the error Unable to launch the IIS Express Web server is shown) the solution that often works for me is simply:

  • Kill IISExpress process
  • More importantly, close all browsers processes (Firefox, Chrome, Chrome Dev Tools, IE, etc)

Works like a charm :) If doesn't, try different solutions from this thread.

PS. I post it as an answer so it can be found easily, although someone wrote it here somewhere in a comment.

2
votes

Try closing Visual Studio and open it again using the "Run as Administrator" option.

1
votes

Remove your extra bindings from the config file.

run command prompt as an administrator and type.

1 . netsh http show urlacl

you will see a list of url that has been used, make sure the one you are trying to use currently is listed in this. in the next step you have to delete this reservation.

2 . netsh http delete urlacl url=/Your complete URL as listed in the list above/

after the acknowledgement, restart IIS

1
votes

I have also experienced this error when running Fiddler at the same time as Visual Studio. Quitting Fiddler and re-running the application did the trick for me.

0
votes

In my case I had to do two things:

a. Remove the virtual directory from this file:

C:\Users\<user-name>\Documents\IISExpress\config\applicationhost.config

b. run the program TCPView from: http://technet.microsoft.com/en-us/sysinternals/bb897437 Find the process which is using your port, and "End Process".

After this, in Visual Studio, open the web app project properties, select Web tab, click "Create Virtual Directory" button to re-create the virtual directory. Run the web app in debug mode.

0
votes

Simply restarting the computer fixed this for me.

0
votes

Try the following steps:

  1. In VS2013 Opened Debug > Website Properties.
  2. Select the "Web" tab.
  3. Under "Servers" I found "Override application root URL" was unchecked. I checked it and saved.
0
votes

I had the exact same problem that the OP states "This problem came from nothing."

And I simply just rebooted my machine and it worked again. Restarting IIS Express didn't work.

0
votes

Simply go to taskmanager --> Process --> iisexpress --> right click --> end process tree --> then you can build and run your application

0
votes

The issue got resolved by following the below steps: - Project-> Properties-> Web - Under Servers select local IIS. - Save the setting and Browse again

0
votes

In web.csproj change the port number

<DevelopmentServerPort>56048</DevelopmentServerPort>
0
votes

Navigate to IIS express

cd "C:\Program Files (x86)\IIS Express\"

run this appcmd.exe list site /xml | appcmd delete site /in

Also, clear your temp files in %temp% and logout, or reboot

This will delete all the sites, enjoy!

0
votes

Another option is to delete the applicationhost.config as well from your local solution folder.

Visual Studio stores this as well in a folder called .vs\config in the root of your solution folder.

Delete or edit the applicationhost.config there helped me resolve this

0
votes

Please remove your project .vs folder and applicationhost.config file and then run your code.

enter image description here

-1
votes

Much more likely than any of the above answers: delete IISExpress folder, as described in this SO article.

-1
votes

In my case i tried every post I found on net and nothing works, last thing I done is to change option on project right click/ use visual studio web server and all works well now...