我有一个 .NET 8 WebAPI 在本地主机端口 8080 上运行 (Kestrel),
我还有一个使用我的 authtoken 运行的 ngrok 容器,并使用以下命令监听端口 8080:
docker run --net=host -it -e NGROK_AUTHTOKEN=[MyAuthToken] ngrok/ngrok:最新的http 8080
根据 ngrok 日志屏幕,ngrok 容器运行良好:
ngrok (Ctrl+C to quit) Help shape K8s Bindings https://ngrok.com/new-features-update?ref=k8s
Session Status online
Account nativ bashari (Plan: Free)
Update update available (version 3.15.1, Ctrl-U to update)
Version 3.15.0
Region Europe (eu)
Latency 62ms
Web Interface http://0.0.0.0:4040
Forwarding https://3100-77-124-51-65.ngrok-free.app -> http://localhost:8080
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
WebAPI 也在端口 8080 上运行和访问。
但是,当我通过 ngrok 网关尝试 GET 请求时,例如:
https://3100-77-124-51-65.ngrok-free.app/api/MyController
我收到“502 Bad Gateway”错误。以下是错误的截图:
ngrok 端点错误屏幕
ngrok 日志屏幕
经过大量故障排除后,
我非常感谢任何经历过类似问题或知道如何解决此问题的人的帮助。
我已经添加了 CORS 策略来接受入站请求。 并重置 ngrok 容器。
这似乎是容器中的经典本地主机,意味着该容器,而不是它正在运行的主机。
如果您使用 Docker Desktop,您可以使用 host.docker.internal 访问实际主机。其他容器运行时也有类似的神奇名称。