我在哪里可以find在.NET中开发的Windows服务的生命周期的详细视图? 我这样提出我的问题,因为我不确定是否可以在这里发布足够详细的描述,但如果您认为可以请随时尝试。
一个不正确答案的例子是从MSDN页面粘贴描述: Windows服务应用程序简介 。 这还不够详细。 例如,服务是否卸载内存不足,因此调用dispose方法? 或者只是通过OnStop方法停止,只有通过调用OnStart方法才能重新启动而不需要初始化?
由于我的问题已被回答,并同时提出了另一个问题,下面是一些对象生命周期的参考(我现在知道这也适用于服务)供未来的访问者使用这个问题:
StackOverflow – 什么是.NET对象生命周期?
当Windows能够find它时,如何findMercurial可执行文件的完整path?
XP和Windows 7/8上的DateTime.Parse不同
是否有可用于可移植类库的System.Environment.Machinename的等价物?
在WCF和Windows服务中下载大文件
有没有办法来检查用户是否有特定的权利?
tutorials.beginners.co.uk/read/id/188
developerfusion.com/article/1047/new-objectoriented-capabilities-in-vbnet/3/
请享用!
OpenCVSharp:无法加载DLL“OpenCvSharpExtern”
如何用C#.NET编写程序,在Linux / Wine / Mono上运行它们?
Microsoft.CSharp库中的BadImageFormatexception
是否有附加到标准输出的缓冲区大小?
Windows服务实际上是一个应用程序,它提供了一些额外的方法供服务管理器控制,即Stop() , Start() , Pause() , Continue() (或等价物)。
当调用Start时,创建应用程序域,初始化服务类并调用Start()方法。 停止时,应用程序域从内存中卸载之前调用Stop()方法。
你可以看到这与任务管理器。 在调用启动之前,应用程序不在内存中,并且在停止完成后消失。
因此,我相信您的生命周期问题的答案在于标准.NET应用程序的生命周期,无论是命令行,winforms还是asp.net。
我还建议,如果你依赖于dispose方法,那么你的设计中可能存在一个缺陷,在大多数情况下,dispose清理的资源应该比服务主机调用你的组件更频繁地处理处置。 大多数服务都是在某个地方响应系统事件的机制,在这个事件来自非托管资源的情况下,您可能只想获取资源OnStart并将其释放给OnStop,在事件不是源于非托管空间,那么你可能想要抓住和释放非托管资源在更多的JustInTime类型的方式,只要你需要他们抓住他们作为资源,并释放他们(通过他们的dispose方法)尽快。 为了进一步阅读检查何时以及如何使用配置和.Net配置模式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。