系统检测到在一个调用中尝试使用指针参数时的无效指针地址
环境
Win10(64)、python38、uvicorn,可以正常启动,但接收post或get请求时报错。
报错如下
INFO:root:server started at http://127.0.0.1:8000...
ERROR:asyncio:Accept failed on a socket
socket: <asyncio.TransportSocket fd=440, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('127.0.0.1', 8000)>
Traceback (most recent call last):
File "C:\Python38\lib\asyncio\proactor_events.py", line 801, in loop
conn, addr = f.result()
File "C:\Python38\lib\asyncio\windows_events.py", line 808, in _poll
value = callback(transferred, key, ov)
File "C:\Python38\lib\asyncio\windows_events.py", line 557, in finish_accept
return conn, conn.getpeername()
OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-3' coro=<IocpProactor.accept.<locals>.accept_coro() done, defined at C:\Python38\lib\asyncio\windows_events.py:559> exception=OSError(10014, '系统检测到在一个调用中尝试使用指针参数时的无效指针地址。', None, 10014, None)>
Traceback (most recent call last):
File "C:\Python38\lib\asyncio\windows_events.py", line 562, in accept_coro
await future
File "C:\Python38\lib\asyncio\proactor_events.py", line 801, in loop
conn, addr = f.result()
File "C:\Python38\lib\asyncio\windows_events.py", line 808, in _poll
value = callback(transferred, key, ov)
File "C:\Python38\lib\asyncio\windows_events.py", line 557, in finish_accept
return conn, conn.getpeername()
OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。
问题原因是:系统使用或更新导致 winsock 出错
解决办法: 用管理身份运行cmd,执行 netsh winsock reset 重启问题解决