Проблема с подключением к локальному хосту из браузера с использованием WSL

Я пытаюсь разработать конечную точку Python FastAPI для Windows в среде Ubuntu WSL, но, похоже, не могу просмотреть/доступ к ней из моего браузера. Странно то, что я пробовал это несколько дней назад, и, похоже, он работал нормально, но с тех пор не работал, поскольку я, кажется, получаю эту ошибку от использования завитка в моем powershell:

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, чтобы запустить приложение и попытаться получить доступ к предоставленной конечной точке.

Моя версия сборки ОС — 19041.508, если это имеет значение.

Кто-нибудь знает, как я могу заставить это работать снова? Я понятия не имею, что здесь может пойти не так.

Спасибо


person sohaib    schedule 11.10.2020    source источник
comment
Обратите внимание: если я запускаю curl в wsl для этой конечной точки, я получаю ожидаемый ответ. Во-вторых, я также пытался получить доступ из браузера, используя IP-адрес виртуальной машины wsl, что также дало ту же ошибку.   -  person sohaib    schedule 11.10.2020
comment
Вы пытались запустить приложение через uvicorn --host 0.0.0.0 main:app --reload ?   -  person lsabi    schedule 12.10.2020
comment
Да, я пробовал это и получаю ту же ошибку. Firefox говорит, что Firefox не может установить соединение с сервером по адресу 0.0.0.0:8000, а curl из-за пределов wsl по-прежнему выдает ту же ошибку.   -  person sohaib    schedule 12.10.2020


Ответы (3)


Я только что проверил это на своей машине, и она работает так, как ожидалось. Я использую WSL2 Ubuntu 20.04 в версии 19041.572 Windows 10. Используйте localhost, чтобы указать на службу, работающую, как указано в документации: Сеть WSL

введите здесь описание изображения

person SJ Bey    schedule 15.10.2020
comment
Извините за поздний ответ, к сожалению, не удалось заставить его работать с существующим pipenv. Закончилось просто удалением существующего pipenv и созданием нового, который, кажется, работает сейчас. Спасибо за попытку помочь. - person sohaib; 11.11.2020

На случай, если кто-нибудь увидит это в будущем, я удалил и воссоздал среду pipenv. В итоге это заставило его работать.

person sohaib    schedule 10.11.2020

Перезагрузка компьютера иногда может решить странные проблемы с подключением. Я не уверен, почему. У меня была проблема с отказом сервера fastapi от безопасного соединения, которое раньше работало и работало с завитком, но не в браузере, несмотря на всевозможные меры. Он таинственным образом отказывался от любого подключения из браузера. Перезагрузил компьютер и обновил VS Code, теперь все работает нормально. Возможно, это было обновление VS Code.

person Bryan Aneux    schedule 22.02.2021