3

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

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

编辑: 问题在 Windows 7 上没有重现。我只能在 Windows XP 机器上重现它。

4

1 回答 1

0

我找到了解决方法。

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

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

顺便说一句,问题没有在 Windows 7 上重现。我只能在 Windows XP 机器上重现它。

于 2012-08-24T13:22:01.887 回答