我有一个由两个服务组成的Windows服务项目,service1和service2。我们如何在这两个服务之间进行通信?例如,我们如何让service1启动service2?我可以使用ServiceController类来执行此操作吗?您对此有何建议? 最佳答案 ServiceController类包含一个采用int的ExecuteCommand方法。因此,如果您可以使用非常有限的参数,您的两个服务可以通过相互发送ExecuteCommand消息来进行通信。但是,正如其他张贴者评论的那样,WCF可能是更好的答案。您可以创建命名管道或在
我需要编写一个Windows服务,它在一定时间后执行一个应用程序。我查看了MSDN中的代码并找到了一个示例,其中System.ServiceProcess.ServiceBase类被子类化。我做了以下事情。创建了一个新的C#控制台应用程序从MSDN示例中复制了代码运行出现以下错误命名空间“System”中不存在类型或命名空间名称“ServiceProcess”(是否缺少程序集引用?)因为我已经从MSDN复制了示例,所以我不知道为什么代码仍然不起作用。这是我第一次编写服务,我希望得到一些指导。谢谢! 最佳答案 您是否在项目中包含了对S
需要帮助,我需要使用一个带通配符的命令来更改Windows服务的“启动类型”状态。我需要一个命令来更改名称为Citrix*的所有服务的启动类型。我已经在使用以下命令来停止服务:wmic服务,其中“displaynamelike'Citrix%'”调用StopService但我找不到任何使用通配符从命令行配置服务的内容。 最佳答案 wmicserviceset/?表示可写属性不适用于此别名或类。要设置Windows服务的启动模式属性,请调用ChangeStartModemethodoftheWin32_Serviceclass.Sta
我有一个作为Windows服务运行的ActiveMQ代理。它使用jdbcPersistenceAdapter与Oracle数据源和Oracle的通用连接池(UCP)。当数据库关闭时(由于网络问题或定期维护),ActiveMQwindows服务将完全关闭。这当然会使代理不可用,即使在数据库恢复后也是如此。我已经尝试在UCP、带连接验证的DBCP甚至MySQL数据源中进行连接验证,但均未成功。该服务会在数据库出现故障后30秒内关闭(我相信这是因为默认的cleanupInterval是30秒)。有没有办法防止windows服务关闭并让它等待数据库可用?非常感谢任何帮助。这是我当前来自acti
我有一个使用本地帐户运行的Windows服务,比如“servername\User1”。当我在服务器上使用此用户登录时,我可以打开一个共享位置,比如"\SharedServer\Dir1"。但是当服务运行时,它无法访问相同的位置并出现错误"Logonfailure:unknownusernameorbadpassword." 最佳答案 尝试在正常工作的用户帐户中运行该服务:http://www.coretechnologies.com/WindowsServices/FAQ.html#AppNotWorkingFromService
几年来,我们一直在使用Procrun将Java应用程序转换为服务(并且没有出现问题)。我们还有一些作为服务运行的nativeWindows可执行文件。到目前为止,我们使用WindowsManagementInstrumentation(WMI)来定义这些,但我现在也尝试将Procrun用于这些nativeexe...不幸的是,我无法启动服务(或至少保持正在运行)。该服务似乎已正确创建;Prunsrvlog/stdout/stderr不包含错误;Apache/procrun和system/Services下的注册表项似乎创建正常;我可以使用Windows服务小程序或Prunmgr监视器查
在使用Process.Start时外壳另一个可执行文件(不是文件类型)为什么它会返回false并且无法启动可执行文件而不是抛出异常?更清楚地说,文档提到“如果进程资源已启动,则返回为true;如果没有启动新的进程资源,则为false(例如,如果现有进程被重用)”。“重用现有进程”的所有解释似乎都是为了启动在处理它们的程序的现有实例中打开的文件(例如启动在现有图像编辑器实例中打开的.jpg)。在此上下文中启动的可执行文件是内部编写的,不会阻止新实例的执行。不存在应用程序甚至尝试启动的日志记录或其他迹象。无法找到有关流程未启动原因的反馈。值得注意的是,快速连续启动的可执行文件数量越多,问题
我用C++编写的服务有一个小问题。该服务本身运行正常,并在SYSTEM帐户下运行。在一次执行期间,我必须启动或停止另一项服务。然而,这是行不通的。对OpenService()的调用返回错误代码5,即“拒绝访问”。提供更多细节:我必须启动一个自己的时间提供程序服务,该服务尝试在网络适配器上打开端口123,并且该端口通常已经由来自的win32time服务打开Windows。我尝试做的是让用户可以选择在我的服务启动时自动停止该服务,并在它停止时重新启动它。此服务只能在支持UAC的系统上以提升的用户权限访问,我知道,但我一直认为默认情况下SYSTEM帐户能够执行此操作,但显然我错了。是否有可能
我们一直在制作windows服务,我们有一个非常好的模板,带有漂亮的小命令行参数,便于安装等。这是我们想要做的事情...编写一段代码,以便编译后的代码可以作为服务或控制台应用程序运行,具体取决于您启动它的方式。我们发现这样做:staticvoidMain(string[]args){if(System.Environment.UserInteractive){//YoudoubleclickedtheexeConsole.Write("Youdoubleclickedme")}else//Windowsstartedmeasaservice.{ServiceBase[]Services
我使用C#创建了一个Windows服务,需要添加一个计时器,在此期间服务将处于空闲状态,并且应该仅在空闲超时发生后才开始处理。如果设备进入休眠状态,计时器会重新开始还是继续? 最佳答案 做了一点体操并确定了一个我认为可行的解决方案usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Threading;usingSystem.Diagnostics;namespaceTest{classProgram{staticvoidMain(strin