Last week we’ve showed you a neat tool to kick start your web development. While Web Matrix 2 is great for all purpose web development and deployment, there are hidden gems that comes with it that you might not have noticed. Web Matrix uses Microsoft’s IIS as web server, it’s an alternative to the popular apache server. By installing Web Matrix 2, you are actually installing many dependency software than just the Web Matrix 2 alone, that includes a services, called “MsDepSvc” (Web Development Agent Service). It runs IIS in the background as a services and believe it or not, by default it occupies port 80.
Do a quick netstat -o –n –a | findstr 0.0:80
You will see the process that runs this services is happen to be the “System” process, usually with process ID 4.
Now this introduced an issue for people who wish to use apache as the web server. You will run into things like the following:
An attempt was made to access a socket in a way forbidden by its access permissions. : make_sock: could not bind to address [::]80
Recall, when XAMPP have trouble to start up apache due to conflict port 443 required for HTTPS. You can go start up apache manually by running the apache_start.bat file. Once you identified the trouble maker, you can go to the corresponding services and stop that service. In this case, after some research, if your system ever have port 80 already occupied and you don’t have apache running. Chances are, you have this services MsDepSvc running in the background that’s occupying port 80.
A quick fix would be stop the service, when you don’t plan to use IIS or Web Matrix 2 for any web development. And start the services when it needed, hope that solves some mysteries you might have when you switching between using Web Matrix to the traditional apache development.
Excellent post! Port 80 problem with Apache solved! (XAMPP 1.8.0 install)
Thanks a lot mate! Very useful