3

一部のお客様のWinXPSP3マシンでは、ほぼ毎日奇妙な動作が発生しています。

起動時に次のコードを実行する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サービスに依存し、HTTPServiveが正常に開始されたときに開始されます。

于 2013-04-19T13:21:38.093 に答える