我有一个应该侦听HTTP请求的Windows服务。我正在使用HttpListener。该服务成功地完成了它的工作。 但是,当服务设置为在系统启动时自动启动时,我会延迟HTTP初始化。 HttpListener构造函数需要1到2分钟才能返回。因此用户成功登录,例如他的信使已经在线。 我已经读过HttpListener正在使用HTTP.SYS:内核模式http监听器,所以可能是正常的,因为系统正在初始化。
我的问题是: 1)HttpListener初始化有这样的延迟是正常的吗? 2)是否有任何变通方法可以避免这种延迟(除了不使用HttpListener)?
修改 问题不会在Windows 7上重现。我只能在Windows XP计算机上重现它。
答案 0 :(得分:0)
我找到了解决方法。
我从服务的“OnStart线程”调用了HttpListener构造函数。如果我在另一个线程中移动构造函数调用并从服务的OnStart方法返回,则HttpListener像往常一样快速初始化。
我不知道为什么会这样。只能假设HttpListener所需的某个组件随后在系统启动时被初始化。
顺便说一下,问题不会在Windows 7上重现。我只能在Windows XP机器上重现它。