2012-02-06 61 views
0

我写了一个windows服务。我正尝试从我的网络应用程序启动服务。无法打开服务错误

ServiceController svcContrl = new ServiceController("TestService"); 
svcContrl.Start(); 

我可以在我的电脑 - >管理 - >服务中看到服务。如果我从那里手动启动服务,它工作正常。但是当我尝试运行代码时,出现异常“无法在[ComputerName]上打开TestService服务”。

我已经授予访问aspnet用户,Windows登录用户服务,bin /调试文件夹仍然得到此代码运行时的异常。 我是否缺少导致此异常的内容?

+1

问题是什么?这不是一个调试论坛;这是一个编程论坛,所以你应该问一些具体的问题。 – mydogisbox 2012-02-06 19:52:47

+3

你想从ASP.NET/IIS应用程序启动Windows服务吗? – Yahia 2012-02-06 19:52:58

+0

查看事件日志,看看发生了什么。 – NotMe 2012-02-06 20:07:18

回答

1

我得到了解决。我正在使用Windows 2008 R2 IIS 6.1。它默认作为网络服务连接。因此,我需要更改我的虚拟目录的基本设置,并将其设置为连接为我的机器登录凭据。谢谢所有人,特别是Chris。

1

InvalidOperationException可能在服务未找到时发生,或者服务本身存在一个阻止其启动的错误。

鉴于你说你可以直接通过MMC应用程序启动服务,这听起来像你的代码中的服务名称可能不正确。

请尝试以下操作:http://msdn.microsoft.com/en-us/library/yb9w7ytd.aspx以查看服务是否可以启动/停止/等等。

此代码(http://msdn.microsoft.com/en-us/library/hyd7kz8c(v=vs.90).aspx)显示如何获取系统上的服务列表。可能有助于确定实际的服务名称。

而且,这里是启动一个示例应用程序/服务站:http://www.codeproject.com/Articles/31688/Using-the-ServiceController-in-C-to-stop-and-start

+0

谢谢克里斯。我试图让服务列表运行。我得到了这个例外。 “计算机上无法打开服务控制管理器”[计算机名称],此操作可能需要其他权限。“我在这台机器上拥有管理员权限 – RRForUI 2012-02-06 21:07:50

+1

@rohit:这里的内容是什么?你有一个试图启动服务的asp.net网站吗?如果是这样,那么你的特权是什么并不重要。重要的是网站正在执行的用户的特权。那个账号是什么? – NotMe 2012-02-06 22:36:04

+0

克里斯,你说得对。它托管在我的本地IIS中。我创建了一个仅用于测试服务的独立应用程序,并且它完美地工作。但是,当我在IIS中托管它时,它会失败。我如何授予访问IIS用户的权限? – RRForUI 2012-02-07 17:29:24