问题描述
在具有WSL 2的Windows 10上运行,我有一个Node.js应用程序(App1),我正尝试使用另一个Node.js应用程序(App2)进行测试。 App2模拟App1依赖的HTTP服务,即AWS和Salesforce API。 Salesforce部分使用CometD协议将消息推送到App1。
App2在WSL 2中的Ubuntu上运行。App1在Windows 10上运行。两者都在同一台物理计算机上。
当我通过CometD(HTTP长轮询)将数千条消息推送到App1时,App1开始阻塞并收到以下错误:
error: {
"errno": -4077,"code": "ECONNRESET","syscall": "read"
}
我杀死了App1并重新启动它,但是它继续收到相同的错误。无论是通过VSCode运行App1还是仅从命令行使用node。
奇怪的是,我可以在WSL 2上使用bash中的CURL向App2发出请求,并且效果很好。我可以让App1与App2再次通话的唯一方法是重新启动计算机。
为什么会发生这种情况,有什么方法可以在不重新启动Windows的情况下进行修复?
解决方法
重新启动WSL 2可以(暂时)进行,并且不需要重新启动Windows。
从命令行运行:
wsl --shutdown