我有一个Windows服务,应该侦听HTTP请求。我为此使用HttpListener。该服务已成功完成其工作。
但是,当服务设置为在系统启动时自动启动时,HTTP初始化会有所延迟。 HttpListener构造函数需要1到2分钟才能返回。因此,用户已成功登录,例如他的Messenger已在线。
我已经了解到HttpListener正在使用HTTP.SYS:内核模式http侦听器,因此可能是正常的,因为系统正在初始化。

我的问题是:
1)HttpListener在初始化中有这样的延迟是否正常?
2)是否有任何解决方法来避免这种延迟(除非不使用HttpListener)?

编辑:
在Windows 7上不会重现该问题。我只能在Windows XP计算机上重现该问题。

最佳答案

我找到了解决方法。

我从服务的“ OnStart线程”调用HttpListener构造函数。如果我将构造函数调用移到另一个线程中,并且只是从服务的OnStart方法返回,则HttpListener会像往常一样快速初始化。

我不知道为什么会这样。只能假设HttpListener所需的某些组件随后在系统启动时随后被初始化。

顺便说一句,该问题不会在Windows 7上重现。我只能在Windows XP计算机上重现该问题。

08-06 02:48
查看更多