We have two services developed in Visual Studio .NET 2008 with VB.NET. Both were developed completely separately by separate individuals (one of them being myself), but both are reporting the same error during boot: “service hung on starting” appears in the System event log after booting. The services proceed to start up fine after that message (just a few messages down the line is the notice that the service started). Is there something about the slowness of loading the .NET framework or JIT compiling the code that’s causing this or what? It starts and stops fine when done manually. Mine is a very simple service with no startup code other than that provided by the framework.
Update 1:
This is all I’ve got in OnStart:
host = New ServiceHost(GetType(FSE.Licensing.FSELicense))
host.Open()
FSELicense does not define a constructor, so it just gets the default empty public constructor provided by VB.NET, I guess.
Update 2:
My question has morphed based on the solution proposed by a colleague which supposedly fixed the problem. This solution does in fact simply add a dependency on another service that I did not think was necessary since my service does not do anything until a request is made of it. However, it does declare a variable of a COM type. Is it possible that having a reference to this COM type (even though there is no instance) will cause the COM DLL to load at the same time as the service, and possibly rely on a service? I didn’t realize COM references were like static links in .NET if so.
I solved my problem by adding a service dependency to the service for “HTTP SSL service” (HTTPFilter). I had the exact same problem on an XP machine with a Windows Service that I wrote in .NET that exposed a WCF endpoint with a netpipe and http binding. When the system started up, it would always hang on the host.Open() call, and eventually timeout. I could start the service manually with no problem.
See this link for instructions on adding a service dependency. The
DependOnServicevalue that I used wasHTTPFilter