我使用 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。该服务运行良好。
谁能告诉我这里有什么错误,我错过了什么?任何帮助将非常感激。