#asp.net-core #curl #wsl-2 #kestrel
#asp.net-core #curl #wsl-2 #kestrel
Вопрос:
На моем локальном хосте ПК (Win10). Я начинаю asp.net базовое веб-приложение в Kestrel и port — 8081.
Я хочу использовать команду curl в wsl2 для тестирования веб-приложения, и я обнаружил проблему.
На моем КОМПЬЮТЕРЕ работает следующий URL-адрес.
curl http://localhost:8081/hello (working)
curl http://127.0.0.1:8081/hello (working)
curl http://192.168.43.216:8081/hello (working)
curl http://172.25.208.1:8081/hello (working)
В wsl2 я использую команду curl, но не работает нормально.
curl http://192.168.43.216:8081/hello (not working)
curl http://172.25.208.1:8081/hello (not working)
Сетевая карта локального хоста моего ПК
Wifi
IPv4: 192.168.43.216
submask: 255.255.255.0
gatway: 192.168.43.1
vEthernet (WSL)
IPv4: 172.25.208.1
submask: 255.255.240.0
gatway:
Вот мой asp.net основные настройки веб-api.
launchSettings.json
"PrometheusCoreTest": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://0.0.0.0:8081"
}
Контроллер веб-api
[ApiController]
public class TestController
{
[HttpGet("/hello")]
public string Hello()
{
return "hello, world";
}
}
Я использую netstat для поиска порта 8081 и настраиваю брандмауэр на разрешение порта 8081.
C:WINDOWSsystem32>netstat -ano | find "8081"
TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 22092
TCP [::1]:2184 [::1]:8081 SYN_SENT 22972
Но результат curl http://192.168.43.216:8081/hello
в wsl2 все еще не работает.
Как я могу получить доступ к веб-приложению localhost с помощью wsl2? Я пропустил некоторые настройки?
Ответ №1:
ОК. Наконец я нахожу проблему.
Используйте telnet для проверки порта с помощью wsl2. (Он не работает.)
> telnet 192.168.43.216 8081
Trying 192.168.43.216...
Я обнаружил, что брандмауэр Visual Studio project заблокирован. Я не знаю, почему проект vs заблокирован…
Просто остановите заблокированное правило и повторите попытку telnet, чтобы проверить, работает ли порт нормально.
❯ telnet 192.168.43.216 8081
Trying 192.168.43.216...
Connected to 192.168.43.216.
Escape character is '^]'.
Использование команды curl тоже работает нормально.
❯ curl http://192.168.43.216:8081/hello
hello, world%