Default Website Won’t Start

(Please add your comments about this article to my blog.)

I just tried to start up my Default Website in IIS so I can continue work on my client’s ASP site. Fire up IIS Manager, highlight the Default Website, click Start… Bang:

OK, 80070020 is an error code that breaks out into a Windows API code 32 (decimal for hex 20). A quick look in winerr.h reveals the symbol name for this error code is ERROR_SHARING_VIOLATION. Fine. What is attempting to be shared and who’s doing the violating?

The system event log recorded a matching event ID 1004 for source IIS-W3SVC:

But I still don’t know what resource cannot be shared.

Off to Google. As luck would have it, I found a page describing IIS troubleshooting tips that matched this error message and error code. They have a section that describes the very message in the event log entry. Who the heck is using port 80? So I checked the ports on my computer using the command they suggested:

netstat -ano | findstr 80

The very first line displayed shows that process 8144 is listening on port 80. But that’s my Skype client!

It turns out that the other day I had set the Default Website to not automatically start. So when I booted the computer Skype automatically started (as always) and since the website had not already claimed port 80 that means that Skype was able to use the port. Since when did Skype become a web server? It turns out that Skype has this feature that allows it to become a “supernode” if it can grab port 80 at startup. Well, I don’t want to be relaying calls so I shut down my Skype client and my Default Website then started just fine. To display this feature of Skype, go into Skype’s options under AdvancedConnection and uncheck the option Use port 80 and 443 as alternatives for incoming connections, as shown here: