【发布时间】:2011-09-11 13:56:51
【问题描述】:
已解决问题,请参阅我的帖子底部。
所以我有一个简单的 Windows 服务,它监视特定文件夹并使用 Web 服务将进入其中的文件上传到服务器。
它在我使用 windows 7 的机器上运行良好,但是当我尝试在 windows server 2003 上启动它时,我收到一个错误:错误 1053:服务没有及时响应启动或控制请求。但我在几秒钟后就收到了这条消息。
我创建了 ServicesPipeTimeout 并将其设置为 60000 毫秒。
我尝试使用 sc query 命令从命令行运行它,发现 WIN32_EXIT_CODE 为 0,我认为这意味着该服务甚至没有尝试启动,因为它在启动之前发现了一个错误。
在事件查看器中,我收到错误 7000 和 7009。 我是 windows 服务器的管理员。 我唯一没有尝试过的是我从 microsoft 找到的修补程序,但我不想使用它,因为据我了解,它适用于服务实际超时的情况。http://support.microsoft.com/ KB/886695
我已经尝试了所有我能想到的东西,还有什么我缺少的吗?
吉斯利
编辑:重新安装 .NET 框架,现在我收到一个新错误,说找不到服务控制器。
编辑:我使用安装项目设置服务,而不是使用 installutil 命令。这是因为我需要在安装过程中获取用户输入并将其保存在注册表中。
编辑:我已经安装了 .NET 4.0 框架,如果不这样做就无法安装服务。
除了我上面写的之外,我还尝试过: 重新启动。 重新安装。 我试图更改服务需要访问的文件的权限。 在注册表编辑器中更改权限。 修改代码,使 onStart 函数只启动一个线程。
我认为这是某种权限问题,但我没有太多处理 Windows 服务器的经验。
解决方案: 原来是两个独立的问题。 .NET 框架必须修复,我必须删除启动服务时的 try/catch 子句。由于某种原因(我不知道),try catch 块做了一些事情,导致无法在 windows server 2003 中启动服务,但它在 windows 7 上运行良好。
知道这是为什么会很有趣。
感谢大家的帮助。
吉斯利
【问题讨论】:
-
当您的服务的
OnStart事件处理程序中引发异常时,会出现此消息。请参阅我的答案以获取可能的解决方案。
标签: c# .net windows-services timeout windows-server-2003