微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从.Net的angular度来看windows服务的体系结构

几个Windows服务可以共享一个进程。 在C#中,他们将开始为:

ServiceBase.Run(new MyService1(),new MyService2());

run方法调用会阻塞执行main()的线程。 同时处理服务事件。 那么他们在哪里执行?

他们是否使用asynchronous过程调用的“主”过程中不仅被阻止,而是在警戒等待? 如果是这样的话,共享多个服务的过程在性能上有缺点。 处理程序是否在单独的线程中运行? 它们是否在包含Run()调用的进程之外执行?

分布式列表中的冲突解决

获取Windows版本

如何以编程方式说明XP 64位和Server 2003 64位之间的区别

简单的C#应用​​程序无法正常工作,在Visual Studio中运行时工作正常

获取Windows产品密钥,域名,用户名等详细信息

当固定到开始菜单时,应用程序标题丢失

testing/debuggingShell Extension&Regasm&explorer.exe

获取计算机上安装的所有驱动程序

如何在UltraWinGrid中设置自定义字体?

如何devise具有相同结构的窗体?

在Windows中,多个服务可以通过使用SERVICE_WIN32_SHARE_PROCESS服务类型共享一个进程。 .NET必须使用此服务类型在Windows上的单个进程中注册多个服务。

每个注册的服务都有一个由SERVICE_TABLE_ENTRY结构表示的名称和本地入口点地址。 .NET将为传递给ServiceBase.Run方法的每个服务构造一个SERVICE_TABLE_ENTRY ,并用这些信息调用StartServiceCtrldispatcher函数

要接收有关服务状态的通知,入口点(由ServiceBase类实现的ServiceMain )必须调用RegisterServiceCtrlHandlerEx来接收通知。 这些通知是使用APC发送的。 另外, NotifyServiceStatusChange API也使用APC。

你可能要做的就是windows服务体系结构以及如何将服务应用程序集成到其中。

MSDN中已经有关于该主题的非常好的文章, 可以在这里找到。

它不仅解释了Windows如何与服务交互,服务数据库如何工作(至少部分)。

本文还解释了操作系统服务如何工作,并提供了有关IIS(Internet信息服务)中托管服务的一些提示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐