1

我使用 Pyinstaller 创建了 Flask Application 作为 Windows 服务。我将它安装在我的本地机器(Windows 10)中。它工作正常。我尝试在Windows服务器中安装相同的exe,它已安装但未运行并抛出错误, 错误1053:服务未及时响应启动或控制请求

这是我的服务代码。

class FlaskTestServiceSVC (win32serviceutil.ServiceFramework):    
_svc_name_ = "Flask Test Service"
_svc_display_name_ = "Flask Test Service"
_svc_description_ = "Flask Test Service"

def __init__(self, *args):
    win32serviceutil.ServiceFramework.__init__(self, *args)
    self.hWaitStop = win32event.CreateEvent(None,0,0,None)
    socket.setdefaulttimeout(5)
    self.stop_requested = False       

def SvcStop(self):
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    win32event.SetEvent(self.hWaitStop)
    self.ReportServiceStatus(win32service.SERVICE_STOPPED)       
    self.stop_requested = True
    
def SvcDoRun(self):        
    rc = None
    while rc != win32event.WAIT_OBJECT_0:
        try:
            serve(app, host=config.ip_address, port=config.port)
        except Exception as e:
            print(e)                
        rc = win32event.WaitForSingleObject(self.hWaitStop, 5000)
   

if __name__ == '__main__':    

  if len(sys.argv) == 1:
    servicemanager.Initialize()
    servicemanager.PrepareToHostSingle(FlaskTestServiceSVC)
    servicemanager.StartServiceCtrlDispatcher()
  else:
    win32serviceutil.HandleCommandLine(FlaskTestServiceSVC)

我用来创建服务 exe 的 Windows 10 中的库版本: Python - 3.6.3 Pyinstaller - 4.2

Windows Server 2012 R2 - Python 3.6.8

在 windows server 中,我的 python 版本不同。我已经验证了环境路径。如果不同版本的 python 有问题,那么我在另一台 Windows 10 机器上安装了相同的服务Python 3.6.7。该服务运行良好。

谁能告诉我这里有什么错误,我错过了什么?任何帮助将非常感激。

4

0 回答 0