3

在我们的一些客户 WinXP SP3 机器上,几乎每天都会发生奇怪的行为。

我们已经安装了一个 Windows 服务,它在启动时执行以下代码:

if( !HttpListener.IsSupported )
{
    throw new Exception( string.Format( "HttpListener is not supported on {0}.", Environment.OSVersion ) );
}

_httpListener = new HttpListener();
_httpListener.Prefixes.Add( "http://localhost:20001/" );

_thread = new Thread( new ThreadStart( StartListening ) );
_thread.Start();

现在有时当 Windows 启动时,代码会抛出“不支持”异常。停止并再次启动服务后,HttpListener 工作!

我的 Windows 服务需要任何服务依赖项吗?

4

1 回答 1

0

找到了解决方案!

在 ServiceInstaller 构造函数中,只需添加以下行:

serviceInstaller.ServicesDependedOn = new string[] { "HTTP" };

这使您自己的服务依赖于 Windows HTTP 服务,并在 HTTP 服务成功启动时启动。

于 2013-04-19T13:21:38.093 回答