在ASP.net web应用中启动windows服务的安全设置
我在一个内部ASP.net应用程序中有一些代码,如果web应用程序正在运行的服务器上停止了自动服务,我们可以使用这些代码启动自动服务。唯一的问题是它在服务器上运行时似乎没有启动服务。当它在我的桌面上本地运行时,它运行得很好,所以我猜我必须为ASP.net用户提供某些安全设置 这是我的密码:在ASP.net web应用中启动windows服务的安全设置,asp.net,security,Asp.net,Security,我在一个内部ASP.net应用程序中有一些代码,如果web应用程序正在运行的服务器上停止了自动服务,我们可以使用这些代码启动自动服务。唯一的问题是它在服务器上运行时似乎没有启动服务。当它在我的桌面上本地运行时,它运行得很好,所以我猜我必须为ASP.net用户提供某些安全设置 这是我的密码: protected void StartService(object sender, EventArgs e) { LinkButton serviceButton = (LinkButton)sen
protected void StartService(object sender, EventArgs e)
{
LinkButton serviceButton = (LinkButton)sender;
string name = serviceButton.ID;
ManagementPath path = new ManagementPath();
path.Server = System.Environment.MachineName;
path.NamespacePath = @"root\CIMV2";
path.RelativePath = "Win32_service.Name='" + name + "'";
ManagementObject service = new ManagementObject(path);
ManagementBaseObject temp = service.InvokeMethod("StartService", null, null);
Thread.Sleep(100);
GetStoppedServices();
}
有没有人对如何让它发挥作用有什么想法
编辑:为了澄清,web应用程序与我要启动服务的服务器在同一台服务器上运行
编辑2:有一个想法,并试图使用此代码代替。。没有骰子
ProcessInfo = new ProcessStartInfo("cmd.exe", "/C net start " + name);
ProcessInfo.CreateNoWindow = true;
ProcessInfo.UseShellExecute = false;
Process = Process.Start(ProcessInfo);
Process.Close();
可能是访问权问题。当您在本地(通过VisualStudio和内置Cassini web服务器)运行应用程序时,我认为您是在以自己的身份运行它,因此它可以正常工作 当您通过IIS(在服务器上)运行应用程序时,它将以应用程序池中指定的任何用户的身份运行。(我认为它的“网络服务”是默认的)。检查它在IIS中的用户,并尝试授予该用户启动服务的权限 您正在运行哪个版本的IIS?如果是Win 2K3服务器,我猜是6.0 有关配置应用程序池的信息:
有关更多信息,请查看Ingmar的相关信息。可能是访问权限问题。当您在本地(通过VisualStudio和内置Cassini web服务器)运行应用程序时,我认为您是在以自己的身份运行它,因此它可以正常工作 当您通过IIS(在服务器上)运行应用程序时,它将以应用程序池中指定的任何用户的身份运行。(我认为它的“网络服务”是默认的)。检查它在IIS中的用户,并尝试授予该用户启动服务的权限 您正在运行哪个版本的IIS?如果是Win 2K3服务器,我猜是6.0 有关配置应用程序池的信息:
有关更多信息,请查看Ingmar的相关内容。不要使用System.Management对象来控制服务,请查看该类。所有的启动/停止/暂停方法都是可用的,并且以更结构化的方式提供 不过,您可能仍然会遇到权限问题。您的web应用的执行帐户将需要权限来控制您希望影响的目标服务
根据您的平台(Win Serv的哪个版本),将为您的web应用程序的匿名请求执行不同的帐户。验证哪些帐户起作用(或者如果您有经过身份验证的请求,您知道您的用户),并确定它们对Windows服务的权限。不要使用系统。用于控制服务的管理对象,请查看该类。所有的启动/停止/暂停方法都是可用的,并且以更结构化的方式提供 不过,您可能仍然会遇到权限问题。您的web应用的执行帐户将需要权限来控制您希望影响的目标服务
根据您的平台(Win Serv的哪个版本),将为您的web应用程序的匿名请求执行不同的帐户。验证哪些帐户开始使用(或者如果您有经过身份验证的请求,您知道您的用户),并确定它们对您的Windows服务的权限。适用于Windows 7、Windows Server 2008、Windows Server 2008 R2、Windows Vista
右键单击应用程序拉取,然后停止,然后再次单击Windows 7、Windows Server 2008、Windows Server 2008 R2和Windows Vista的开始