使用 WSL 从浏览器连接到本地主机时遇到问题

Trouble connecting to localhost from browser using WSL

我正在尝试在 Ubuntu WSL 环境中的 Windows 上开发 Python FastAPI 端点,但似乎无法从我的浏览器 view/access 进行此操作。奇怪的是,我几天前尝试过这个,它似乎工作正常但没有工作,因为我似乎在我的 powershell 中使用 curl 得到这个错误:

curl : Unable to connect to the remote server
At line:1 char:1
+ curl http://127.0.0.1:8000/
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

并且在任何浏览器中我都会收到找不到该服务器的错误。

下面是一些示例代码:

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {
        "message": "Hello World"
    }

然后我 运行 uvicorn main:app --reload 启动应用程序并尝试访问提供的端点。

如果重要的话,我的 OS 构建版本是 19041.508。

有谁知道我怎样才能让它重新工作?我不知道这里可能出了什么问题。

谢谢

我刚刚在我的机器上测试了它,它按预期工作。我是 运行 WSL2 Ubuntu 20.04 on 19041.572 version of Windows 10. 使用 localhost 指向服务 运行 如前所述在文档中:WSL networking

以防将来有人看到,我最终删除并重新创建了 pipenv 环境。这最终让它开始工作。

重新启动计算机有时可以解决奇怪的连接问题。我不确定为什么。我遇到了拒绝安全连接的 fastapi 服务器的问题,尽管采取了各种措施,该服务器以前可以使用 curl 并使用 curl 但不能在浏览器中使用。它会神秘地拒绝来自浏览器的任何连接。重新启动计算机并更新 VS Code,现在一切似乎都运行良好。也许是 VS 代码更新。