繁体   English   中英

从Asp.net Web应用程序执行Windows服务(* .exe)

[英]Executing Windows Service (*.exe) from Asp.net Web Application

我已经在系统中创建Windows Service并安装了.exe文件。 我可以从Windows 10的Service控件中运行此服务。

我正在从ASP.NET Web应用程序运行相同的服务。 服务启动,但我想在从Web应用程序调用时调用protected override void OnCustomCommand(int command)方法。

我遇到了错误

An exception of type 'System.InvalidOperationException' occurred in System.ServiceProcess.dll but was not handled in user code

Additional information: Cannot control ServiceName service on computer '.'.

网页上写的用于调用Windows服务的代码为-

            ServiceController sc = new ServiceController("ServiceName");
            if (sc.Status != ServiceControllerStatus.Running && sc.Status != ServiceControllerStatus.StopPending)
            {
                TimeSpan timeout = TimeSpan.FromMilliseconds(60000);
                sc.Start();
                sc.ExecuteCommand(CommandId);
                sc.WaitForStatus(ServiceControllerStatus.Running, timeout);
            }

任何人都可以帮助找出此问题的起因吗?

运行网页的代码没有管理员权限来控制该计算机上的服务。

您必须将您的应用程序池配置为在管理帐户下运行。 从安全角度来看,这可能不是一个好主意。

如果您不想使用管理特权来运行Web应用程序,则可以考虑在Windows服务中托管自己的侦听器,该侦听器仅需要用户名/密码或根本不需要身份验证,因为您选择了仅适用于本地主机的变体。 WCF可能是个不错的选择,或者如果您对此更熟悉的话,可能是ASP.NET。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM