我有一个可执行文件,我想将其设置为作为服务运行。使用windows提供的sc.exe工具(见知识库文章:http://support.microsoft.com/kb/251192),我成功“注册”了服务。但是,当我转到服务管理控制台(开始->运行->services.msc)并启动服务时,出现以下错误:错误1053:服务没有及时响应启动或控制请求。阅读之后,我的初步印象是服务可执行文件必须符合API,并且服务必须响应的必需功能/方法包括启动/停止/重新启动命令。然而,这似乎违背了sc.exe工具的全部意义,该工具被宣传能够将任何可执行文件转换为服务。任何人都可以为我阐明这一点吗?
我有一项服务,在安装时会将Myapp.exe.config文件(基于app.config文件生成)放入安装目录。在安装过程中,我需要此文件的详细信息来配置安装。特别是我需要调整我服务的ServiceProcessInstaller实例的帐户/用户名/密码字段,以便在它运行时以特定用户身份运行。但是,在安装过程中,安装程序尚未设置我的注册表设置,也没有将我的Myapp.exe.config复制到安装目录...所以我无法提取这些值,这意味着我的服务无法安装作为正确的用户。我现在能做到的唯一方法是将用户/传递值硬编码到ProjectInstaller类中,但我不能让自己这样做。这是错误的。是
我正在尝试编写一个批处理文件来创建一个Windows服务,该服务作为当前正在运行该批处理文件的用户运行。换句话说,如果我,user_x运行批处理文件,创建的服务将以我,user_x的身份登录。由于用户必须登录才能运行批处理文件,我希望有一种无需输入用户密码即可创建服务的方法。到目前为止,我一直在使用sc.exe创建“本地系统”Windows服务,效果很好。但是我不明白如何为当前用户做同样的事情。有什么想法吗? 最佳答案 不可以,即使您已经以相关用户身份登录,也无法在不知道用户密码的情况下创建以用户身份运行的服务。这是因为系统必须在注
如何让Windows服务请求重新启动?我知道Environment.Exit(1)与RecoveryOptions服务设置有关,但如果服务真的出错怎么办?背景:我们有许多Windows服务使用自主组件作为我们SOA架构的一部分。我们希望在自治组件更新时重启服务,但我们不希望一天重启(发布)两次,并且我们不希望服务在出现真正错误时无限期重启。 最佳答案 我已经创建了许多使用这种技术的self更新服务。我发现依赖恢复选项并不理想,因为它经常让系统管理员感觉您的服务在他们的机器上崩溃了(写入事件日志,由于意外的服务停止而正在发生服务恢复)
我创建了一个尝试启动应用程序(在本例中为CATIA)的Windows服务。我使用以下代码:privateApplicationGetApplicationObject(stringProgId){ApplicationAppObject=null;//TrytogetallreadyopeninstanceoftheApplicationtry{AppObject=(Application)Marshal.GetActiveObject(ProgId);}catch{//CreateanewinstanceoftheApplicationinsteadAppObject=(Applic
如果我有一个已在函数内更新的DLL,我只需要为Windows服务更新它(DLL)-它是否可以由我工作,只需复制DLL并重新启动服务?还是必须遵循InstallUtil流程?谢谢 最佳答案 只需替换dll并重新启动即可。但是,您可能需要在替换之前先停止该服务,因为该dll“正在被另一个进程使用”。 关于c#-Windows服务DLL替换,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions
我的任务是创建一个小型C#(.Net4.0)控制台应用程序,它将在客户的Windows2008R2服务器上运行。应用程序必须“作为”特定域用户“运行”,并且还需要尽可能接近24x7全天候运行。我可以创建双控制台应用程序/Windows服务,或者我可以使用出色的FireDaemon将控制台应用程序作为服务运行,这涵盖了“必须一直运行”方面。但是,客户的域策略是每120天更改一次密码-包括此应用程序将在其下运行的帐户。无法将该帐户排除在该政策之外。因此,看起来我们将安装应用程序(作为服务或通过FireDaemon),帐户密码将过期,下次服务器重新启动或应用程序重新启动时,身份验证将失败。我
Windows服务是否可以强制用户从Windows用户登录屏幕登录?我已经看到LogMeIn在哪里可以做到这一点。当然,这是假设我同时拥有用户的用户名和密码。LogMeIn是否使用实际方法(非自动化),或者他们只是快速自动执行登录任务,我选择用户名和密码字段并输入? 最佳答案 您应该在其中创建一个WindowStation和一个桌面。您的服务将创建WindowStation并将其连接到您要登录的用户,然后我想您会定期截取创建的桌面的屏幕截图以显示在其他地方。您可能想在https://msdn.microsoft.com/en-us/
我有一个用C++编写的Windows服务,用作监听传入连接的TCP服务器。我初始化了服务器套接字并将accept代码放在一个单独的线程中。这将接受并处理传入的连接。但是,我还需要停止该线程以防服务收到停止信号。所以我想到了使用CreateEvent创建一个事件对象并等待它发出信号。这种等待将发生在创建接受线程的线程中。所以我可以使用TerminateThread函数在收到STOP信号时停止接受线程。然而,MSDN说TerminateThreadisadangerousfunctionthatshouldonlybeusedinthemostextremecases.应该如何严格遵守,我
我正在开发一个嵌入式系统,该系统涉及通过USB从多个摄像头模块收集数据。该计划最初是使用小型Linux系统,但相机的Linux驱动程序不支持使用它的任何功能(硬件触发、原始拍摄、某些像素格式等)。制造商提供了一个很好的C#SDK,一切都可以在Windows上运行。我们现在正在研究使用小型Windows系统,例如新的IntelComputeStick或Liva。我想编写软件来收集来自摄像头的数据,因为它们是由系统的另一部分触发的硬件,并将数据写入可移动磁盘。它应该可以通过TCP/IP(硬线)进行远程控制。这听起来像是适合Windows服务范围的东西。这是个好方法吗?我最关心的是遇到安全/