Windows服务不工作

问题描述:

我在C#中的Visual Studio 2008中创建了一个Windows服务。服务里面我写了只有一行代码Windows服务不工作

try 
{ 
    System.Diagnostics.Process.Start(@"E:\Users\Sk\Desktop\category.txt"); 
} 
catch { } 

然后我加入项目安装&改变将ServiceProcessInstaller1帐户属性作为本地系统也改变了serviceInstaller1启动类型属性作为自动。 然后我建立了project.it成功了。之后,我添加了另一个项目,该项目是安装project.i添加了主项目输出&我已经添加了自定义操作作为“DemoWindowsService(主动)的主要输出”。然后构建setup.setup被构建成功。然后我安装设置&然后去服务启动service.service正确说,但它没有执行任务。 我测试过的路径是正确的&也是我试图做

System.Diagnostics.Process.Start(@"E:\Windows\system32\notepad.exe")但还是结果是same.i尝试了很多,但没有得到答案。

+0

你是在哪里写你提到的代码(在该方法中我的意思)?你的实际目标是什么?你为什么只想打开记事本?你能解释一下吗? – 2010-04-05 07:51:41

如果它不工作,那可能是因为引发了异常。但是,由于您使用try/catch块隐藏了所有异常,因此您永远不会知道什么是错误的。

摆脱try/catch块,看看是否可以帮助你了解什么是错的。

+0

对,我正要对那个空的catch块发表评论。 – 2010-04-05 08:04:04

+0

@ prateeksaluja20:另外,检查'eventvwr'是什么错误。 – 2010-04-05 08:48:22

+0

@KMan:除了事件查看器不会因为catch块而显示任何内容! – 2010-04-05 10:59:00

默认情况下,Windows服务无法与桌面交互,记事本是一种交互式应用程序。

如果打开任务管理器,我怀疑你会看到notepad.exe进程在运行,你开始你的服务后,你的服务是做什么的,你想,它只是不可见。

您可以更改服务与桌面互动右键单击它在服务 MMC管理单元(Start -> Run -> Services.msc),并检查允许服务与Log On选项卡上桌面交互选项。

依靠这个选项是不是推荐,但是微软已经表示他们会在更高版本的Windows中删除它。

因为即使没有人登录到计算机(例如,没有“桌面”进行交互),Windows服务也可以使用,所以您可以考虑使用它。

+0

Thanx为您的答案。 – PrateekSaluja 2010-04-05 10:05:40

您是否在服务中的OnStart()方法中编写了单行代码? 如果是这样,则将您的catch块更改为catch (Exception ex),并将异常详细信息写入事件日志以查看发生异常的原因。

Logging Information About Services