我希望你能提供帮助。
我在Windows 7中使用Python 2.7.11。
我有一个主线程为HMI应用程序创建一个非常简单的Web服务器。
lib.HTMLServer.start_http_server(I)
网络服务器提供一些按需生成的页面。
表单,使一些函数被调用,并连接到其他线程。
没有任何循环阻止调用或睡眠,但有时我会收到此错误,这似乎是非常随机的。
我无法弄清楚为什么或何时引发此异常,因为它没有到达我调用它的代码行。 我猜测像超时这样的原因,但这不是错误消息中写的错误。更奇怪的是,这似乎是随机的。
然而,HTML服务器没有被中断,但是空闲窗口变得很奇怪。
远程主机是指向localhost的同一台计算机中的IE窗口。
任何,帮助或提示将不胜感激。
2016-01-26 18:39:26,515 [StateMachine DEBUG] Cambiando a : P1, ['P0'], ['v4']
2016-01-26 18:39:26,516 [Controlador DEBUG] cb[C1_MOVE]: Cambiando estado de P0 a P1 con vel=V1
127.0.0.1 - - [26/Jan/2016 18:39:26] "GET /default.css HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 49522)
Traceback (most recent call last):
File "C:\Python27\lib\SocketServer.py", line 295, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 321, in process_request
self.finish_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Python27\lib\SocketServer.py", line 657, in __init__
self.finish()
File "C:\Python27\lib\SocketServer.py", line 716, in finish
self.wfile.close()
File "C:\Python27\lib\socket.py", line 283, in close
self.flush()
File "C:\Python27\lib\socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 10054] Se ha forzado la interrupción de una conexión existente por el host remoto
----------------------------------------
更新 的 ------------------ 下一个Expression没有抓到任何东西。代码错误是从其他地方提取的,但应该打印出来。
try:
server.serve_forever()
except KeyboardInterrupt:
print '^C received, shutting down the web server'
except Exception , error:
if error.errno == errno.WSAECONNRESET:
logging.debug(" %s %s " % ( str(e), str(e.errno)) )
#reconnect()
#retry_action()
else:
logging.debug(" %s %s " % ( str(e), str(e.errno)) )
raise
我还有一个将webbrowser启动到localhost的过程。
它也不是调用此异常的函数:
try:
# Ejecutar navegador
#ie = webbrowser.get(webbrowser.iexplore)
#ie.open('localhost')
subprocess.Popen(r'"' + os.environ["PROGRAMFILES"] + '\Internet Explorer\IEXPLORE.EXE" localhost')
except Exception , error:
if error.errno == errno.WSAECONNRESET:
logging.debug(" %s %s " % ( str(e), str(e.errno)) )
else:
logging.debug(" %s %s " % ( str(e), str(e.errno)) )
raise