操作错误:现有连接被远程主机强行关闭。 (10054)
Posted
技术标签:
【中文标题】操作错误:现有连接被远程主机强行关闭。 (10054)【英文标题】:Operational Error: An Existing connection was forcibly closed by the remote host. (10054) 【发布时间】:2021-06-09 09:10:59 【问题描述】:我收到此操作错误,可能是在应用程序长时间不活动或空闲时定期出现的。刷新页面时它会消失。我在 Formhandlers 和 gramex 的 DbAuth 中使用 mssql pyodbc 连接字符串(“mssql+pyodbc:///?odbc_connect= ...”)
如何在 gramex 中保持连接有效?
Screenshot of error
【问题讨论】:
您能否详细说明您的问题?你哪里有这个问题?什么编程语言?你想达到什么目的?你能把你的截图也放在这里吗? 【参考方案1】:添加pool_pre_ping
和pool_recycle
参数。
pool_pre_ping
通常会发出等同于“SELECT 1”的 SQL;如果出现一个被检测为“断开”情况的错误,连接将立即被回收。 Read more
pool_recycle
防止池使用已超过特定年龄的特定连接。 Read more
例如:engine = create_engine(connection_string, encoding='utf-8', pool_pre_ping=True, pool_recycle=3600)
或者,您可以在gramex.yaml
中为 FormHandler 添加这些参数。这仅对带有连接字符串的第一个 FormHandler 是必需的。
kwargs:
url: ...
table: ...
pool_pre_ping: True
pool_recycle: 60
【讨论】:
以上是关于操作错误:现有连接被远程主机强行关闭。 (10054)的主要内容,如果未能解决你的问题,请参考以下文章
如何确定哪个 EndPoint 导致了错误代码 10054 的 SocketException? (“现有连接被远程主机强行关闭。”)
Azure Blob 存储异常“现有连接被远程主机强行关闭”
ConnectionResetError: [WinError 10054] 现有连接被 ChromeDriver Chrome Selenium Django 的远程主机错误强行关闭