我有一项服务(一个旧的基于 4D 的应用程序),它一直在 Windows Server 2003 上顺利运行。随着 2003 年的 EOL 即将到来,我正尝试迁移到新的 2012R2 主机。
我使用 sc 命令设置了服务type= own, type= interact
。从 services.msc 启动服务时,会出现启动消息,并缓慢移动,直到它宣布启动服务失败。进度条运行时,服务似乎运行正常。出现错误时,服务被终止。
在 Server 2003 下,需要交互模式来运行服务,因为它会在会话 0 上打开状态/控制窗口。我知道此功能已更改并在 Server 2008+ 上被弃用,我相信这是我的问题的根源。
有没有什么方法可以提高 Server 2012 上的交互式服务兼容性?
答案1
以下技术提示:4D Server 作为 Windows Server 2012 上的服务可能会有帮助:
技术提示:在 Windows 上作为服务运行时访问 4D 服务器窗口解释了当 4D Server 在 Windows 上作为服务运行时必须采取的步骤才能与其交互。
Window Server 2012 的默认设置发生了变化,增加了在 4D Server 作为服务运行时与其交互所需执行的一些步骤。
以下帖子social.technet.microsoft.com解释了在执行上述技术提示中的步骤之前必须在 Windows Server 2012 上采取的首要步骤。
默认情况下,Windows Server 2012 不再允许交互式服务,这使得交互式服务检测服务变得没有必要。
如果您必须运行在 Windows Server 2012 上安装交互式服务的旧版应用程序,则可以通过将以下注册表值从默认值“1”更改为“0”来牺牲服务器稳定性以实现兼容性。
HKLM\SYSTEM\CurrentControlSet\Control\Windows
NoInteractiveServices
执行此操作并重新启动后,交互式服务检测服务将启动。