【问题标题】:.NET Windows service not working in Windows Server 2008.NET Windows 服务在 Windows Server 2008 中不起作用
【发布时间】:2009-06-23 12:35:18
【问题描述】:

我开发了一个 Windows 服务,它在 Windows XP Service Pack 3 中运行没有任何问题。当我在 Windows Server 2008 中部署此服务时,它无法正常工作。服务启动没有任何问题。

我从那里部署的 .exe 的兼容性属性中启用了 Windows XP Service Pack 2 选项。

但启动服务后没有更多动作。

可能是什么问题?

【问题讨论】:

  • 就个人而言,我不知道问题出在哪里,因为您没有告诉我们出了什么问题。你是什​​么意思“它不工作”?
  • 为什么要更改兼容级别?它会向事件日志中抛出任何信息吗?该过程是否立即终止?你试过附加调试器吗?
  • 您在哪个帐户下运行它。我会尝试使用管理员帐户,以确保它不像权限问题那样简单。
  • 应用程序的最终目的是生成 PDF 报告。它没有发生。但在我的本地机器上它正在工作。
  • 我阅读了 service.exe 属性中的语句,说明该服务是否在以前版本的 windows 中运行并且现在没有运行,然后选择兼容模式。所以,我做到了。

标签: windows-services


【解决方案1】:

我会检查它以查看您引用的任何程序集是否是 32 位特定的。我们在使用 Microsoft SQL Server Reporting Services 时遇到了类似的问题。我们用来获取 Web 服务接口列表的 .dll 是 32 位/64 位特定的,因此我们必须根据运行的环境将其换掉。

【讨论】:

  • 我收到此错误:检索具有 CLSID {46521B1F-0A5B-4871-A4C2-FD5C9276F4C6} 的组件的 COM 类工厂失败,原因是以下错误:80040154。
  • 我快速检查了那个错误代码,它表明注册的COM控件不匹配。我的猜测是您引用的控件实际上是 32 位版本。您的服务是基于 .Net 还是基于 COM?
【解决方案2】:

由于该错误可能隐藏在任何地方,我建议首先辨别究竟是什么在 Windows Server 2008 下不起作用。

在您的服务中实现一些日志记录功能(如果您还没有这样做,我强烈建议您这样做)并将结果打印到日志文件中。看看什么在起作用,什么时候停止工作。希望这能让您更好地了解幕后发生的事情。

此外,通过这种方式,我们可以比现在更好地帮助您。

[编辑]

也许这两个可以帮助你?

【讨论】:

  • 应用程序在对 sqlserver 数据库执行查询时会记录信息。据我所知,该服务正在运行。但该应用程序的最终目的是生成 PDF 报告。它没有发生。
  • 创建 PDF 的路径是否存在?服务器是否需要为 PDF 生成安装任何东西?代码是否到达了 PDF 生成应该开始的地方? PDF 生成代码是否已结束?
  • 我收到此错误:检索具有 CLSID {46521B1F-0A5B-4871-A4C2-FD5C9276F4C6} 的组件的 COM 类工厂失败,原因是以下错误:80040154。
  • Edtied 答案...服务器是否以 64 位运行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多