好的,所以我知道如何编写一个服务和后台应用程序,我正在寻找更多的一般意见,因为这是一个奇怪的用例,因为我没有find这个在线的例子给予我指导。
基本上我遇到的问题是我有一个服务器(一个应用程序,而不是一个Web服务器),其中容纳了我所有的应用程序逻辑和一组客户端,可以发送消息到服务器做事情。
显然,客户端是传统的UI应用程序。 问题是服务器应该是…
它不需要GUI,启动时,机器上只能有一个版本。 另一方面,只有至less有一个客户端才应该运行,否则应该closures。
使用Python映射Windows驱动器的最佳方式是什么?
什么System.getProperty(“os.name”)在最新的Windows操作系统中返回
原始打印设置DevMode选项(方向,副本,边距,默认来源等)
DB2:如何在Windows下设置db2clp的编码?
我可能会过度思考,但是我应该将这个服务还是由第一个客户端实例化的后台应用程序?
我参考的东西是: Windows服务与Windows应用程序 – 最佳实践
pywinauto qwidget click trigers no action
检查GUID是否为空(在C中)
login到远程Windows计算机以访问使用Python的共享文件
在C#中获取窗口的句柄
我怎样才能让窗口专注于Windows并重新resize?
使用Windows服务。 它将在您的服务器启动并开始运行直到服务器关闭时启动。
没有客户时,无需关闭。 如果应用程序没有做任何事情,只是等待一个新的连接的套接字,那么它将占用非常少量的资源:套接字和一些内存。
另外,如果你关闭你的服务,当客户想要连接时,你将使用什么机制来重新启动它?
我自己有一个类似的问题,我通过编写一个Windows服务,这是一个自我托管的Web API应用程序来解决它。
有关说明,请参阅我的答案。
与自托管的WCF不同的是,它非常高效,它不会随时崩溃,它为您提供了一个标准接口:HTTP,JSON(或者XML,如果您愿意的话)和(如果您需要的话;您可以使用)REST。
使用Windows服务,以便服务器始终以一致的上下文运行。
配置服务,以便客户端可以根据需要启动它:
wchar_t sddl[] = L"D:" L"(A;;cclCSWRPWPDTLOCRRC;;;SY)" // default permissions for local system L"(A;;CcdclCSWRPWPDTLOCRSDRCWDWO;;;BA)" // default permissions for administrators L"(A;;cclCSWLOCRRC;;;AU)" // default permissions for authenticated users L"(A;;cclCSWRPWPDTLOCRRC;;;PU)" // default permissions for power users L"(A;;RP;;;IU)" // added permission: start service for interactive users ; PSecurity_DESCRIPTOR sd; ConvertStringSecurityDescriptorToSecurityDescriptor(sddl,SDDL_REVISION_1,&sd,NULL); SetServiceObjectSecurity(service,DACL_Security_@R_236_4045@ION,sd);
您可能需要稍微调整ACL以满足您的确切需求。 请注意,为简单起见,错误检查已被排除。
客户可以使用StartService功能根据需要启动服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。