jjzjj

ServiceBase

全部标签

c# - 控制台应用程序/服务需要 40 秒才能启动

我基本上有以下内容:partialclassOperationWindowsService:ServiceBase{publicstaticvoidMain(string[]args){Console.WriteLine("Startingapp.");//...buildopserviceif(Environment.UserInteractive){Console.WriteLine("interactive");vartask=opservice.StartConsole(args);}else{ServiceBase.Run(opservice);logger.LogInfo(

c# - 无法调试 Windows 服务

我查看了几篇文章以了解如何调试Windows服务。我发现如果我将以下代码放入OnStart()函数中:Debugger.Launch();可以解决问题,但在我通过CMD(NETSTART)启动我的Windows服务后,它只是启动并正常运行,但调试器从未启动,即使VS是用加载的Windows服务打开的。我觉得我错过了什么,那是什么? 最佳答案 我通过修改服务的Main方法来做到这一点,它在Program.cs中,默认情况下它看起来像这样:ServiceBase[]ServicesToRun;ServicesToRun=newServi

c# - Windows 服务错误 : "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."

我有一个简单的Windows服务应用程序,我试图在VS2008IDE中调试,但每次运行代码时,我都会收到错误“尝试读取或写入protected内存。这通常表明其他内存已损坏。”.此错误发生在下面的service.Stop()行:staticclassProgram{//////Themainentrypointfortheapplication.///staticvoidMain(string[]args){ServiceBase[]servicesToRun;servicesToRun=newServiceBase[]{newService1()};if(Environment.Us

C# Windows 服务和控制台应用程序合二为一

我们一直在制作windows服务,我们有一个非常好的模板,带有漂亮的小命令行参数,便于安装等。这是我们想要做的事情...编写一段代码,以便编译后的代码可以作为服务或控制台应用程序运行,具体取决于您启动它的方式。我们发现这样做:staticvoidMain(string[]args){if(System.Environment.UserInteractive){//YoudoubleclickedtheexeConsole.Write("Youdoubleclickedme")}else//Windowsstartedmeasaservice.{ServiceBase[]Services

C# windows 服务程序

我能够创建一个简单的Windows服务应用程序。只是框架。但我仍然很困惑。我应该把我的Windows服务代码放在哪里才能真正做一些事情。我有一个单独的程序,我想在此处包含/调用/合并。应该把程序放在哪里?我应该从哪里开始?publicpartialclassMyNewService:ServiceBase{publicMyNewService(){InitializeComponent();if(!System.Diagnostics.EventLog.SourceExists("MySource")){System.Diagnostics.EventLog.CreateEventSo

c# - Windows 服务上的 Unity DI,可能吗?

我正在开发一个Windows服务来做一些周期性的操作,我可以使用Unity从那里的另一个库中注入(inject)我的类吗?我想在我的服务上使用[Dependency]属性,在Windows服务启动的入口点注册组件。例子:staticclassProgram{staticvoidMain(){ServiceBase[]ServicesToRun;UnityConfig.RegisterComponents();ServicesToRun=newServiceBase[]{newEventChecker()};ServiceBase.Run(ServicesToRun);}}publics

c# - 创建组合命令行/Windows 服务应用

在C#中设置实用程序的最佳方法是什么,该实用程序可以从命令行运行并产生一些输出(或写入文件),但也可以作为Windows服务运行以完成其工作在后台(例如监视目录或其他)。我想编写一次代码,然后能够从PowerShell或其他一些CLI以交互方式调用它,但同时也想办法安装与Windows服务相同的EXE文件并让它在无人值守的情况下运行.我可以这样做吗?如果是这样:我该怎么做? 最佳答案 是的,你可以。一种方法是使用命令行参数,比如“/console”,来区分控制台版本和作为服务运行的版本:创建一个Windows控制台应用程序,然后在P

c# - Windows 服务无法启动(错误 1053)

我有一个正在尝试调试的Windows服务。现在它无法启动,即使当前代码曾经有效。错误是:WindowscouldnotstarttheMyServiceserviceonLocalComputerError1053:Theservicedidnotrespondtothestartorcontrolrequestinatimelyfashion.为了隔离错误,我试图注释掉所有内容。主要方法如下所示:TextWritertt=newStreamWriter(@"C:\startup.text",true);tt.WriteLine("Startinguptheservice");tt.C

c# - 如何制作 Windows 服务应用程序以便它也可以作为独立程序运行?

我将从一个示例开始:ApacheWeb服务器(在Windows下)有一个很好的特性:它既可以作为独立应用程序运行(具有当前用户权限),也可以作为Windows安装和运行直接服务(作为本地系统帐户),使用相同的可执行文件。为了让应用程序作为独立应用程序运行,它需要做的就是在某些公共(public)类中使用staticpublicMain()。为了使应用程序可以作为服务安装和运行,它必须以某种方式实现ServiceBase和Installer类。但是,如果像这样的应用程序作为独立应用程序运行,它将显示消息框。这种类Apache的运行方式是如何实现的呢?我相信解决方案很简单,但我真的不知道从

java - 在也实现相同类的基类中使用泛型的好处

我最近在我未编写的代码中遇到过这种情况,虽然这种方法可能有一些设计上的好处,但我似乎无法从自己的大脑中挤出这种基本原理。所以在我看起来很愚蠢之前,我希望能在这里得到一些反馈。服务接口(interface)是这样的:publicinterfaceService{...}然后,一个基类添加了对Service接口(interface)的通用引用,其中T扩展了Service,但随后整个基类也实现了该接口(interface)。像这样:publicclassServiceBaseimplementsService{...}你为什么要这样做?我注意到在实践中,ServiceBase的扩展总是使用与
12