我在哪里可以找到Windows服务的生命周期的详细视图,如.NET开发?(Where can I f

2019-09-19 06:39发布

我在哪里可以找到Windows服务的生命周期的详细视图,如.NET开发? 我把我的问题,这样一来,因为我不知道详细的描述足以可以张贴在这里,但如果你认为你可以请随时免费试用。

不正确的答案的一个例子是从MSDN页面描述的贴: 介绍了Windows服务应用程序 。 这是几乎没有足够详细。 举例来说,是一个服务卸载了内存,并为此将调用Dispose方法? 或者它只是得到由调用OnStop方法停止,只待不用初始化重新开始通过调用OnStart方法?


由于这样的事实,我的问题已经解决,并提出在同一时间的另一个问题,这里有一些对对象的生命周期(我现在知道也适用于服务),用于通过对这个问题的后续访问者:

StackOverflow的-什么是.NET对象的生命周期?

tutorials.beginners.co.uk/read/id/188

developerfusion.com/article/1047/new-objectoriented-capabilities-in-vbnet/3/

请享用!

Answer 1:

Windows服务实际上是暴露了服务管理来控制它一些额外的方法的应用,即Stop() Start() Pause() Continue()或等价物)。

当开始被称为应用程序域被创建,该服务类初始化和Start()调用的方法。 上停止的Stop()应用程序域从内存中卸载之前方法被调用。

你可以用任务管理器中看到这一点。 该应用程序不存在于内存中,直到开始被调用,完成后停止消失。

因此,我认为,回答你的问题的生命周期中处于一个标准的.NET应用程序的生命周期,无论是命令行的WinForms或asp.net。

我也想提醒的是,如果你是依赖于Dispose方法则是有可能的一个漏洞在您的设计某处lieing,在大多数情况下被处置清理的资源,应更频繁地比当服务主机调用您的组件配置部署。 大多数服务是mearly用于响应系统事件的地方,在这种情况下来自非托管资源的情况下的机制,你可能只需要抢资源的OnStart并释放它调用OnStop,在该事件是否源于非托管情况空间,那么你可能想只要你能抓住,并在被你抓住他们,因为只有当你需要他们,释放他们(通过其Dispose方法)的资源更JustInTime型的方式释放非托管资源。 进一步的阅读退房何时以及如何使用处置和净Dispose模式



文章来源: Where can I find a detailed view of the lifecycle of a Windows Service as developed in .NET?