Не удается нажать ASP. NET Core API с удаленного компьютера в сети. - PullRequest
1 голос
/ 25 февраля 2020

Я создал пример проекта do tnet webapi через dotnet new webapi (v3.1.101) и обновил launchSettings. json applicationUrl до первого http:*:5000, затем до http:0.0.0.0:5000. Когда я пытаюсь набрать go до http://<MY_COMPUTER_NETWORK_NAME>:5000/WeatherForecast, время ожидания истекает, но когда я локально пытаюсь http://localhost:5000/WeatherForecast, оно работает.

Я запустил приложение React на порту 5000, и я мог успешно подключиться к нему удаленно, поэтому я не думаю, что это проблема с брандмауэром.

Я работаю на Ma c , Я также попытался добавить .UseUrls(...) безуспешно.

Почему я не могу подключиться удаленно?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Я использую VSCode в Windows, и я заметил, что не могу использовать команду do tnet run из терминала, мне нужно нажать кнопку play в окне боковой панели отладки, чтобы он заработал, и затем я могу подключитесь с других компьютеров в той же сети.

Если вы хотите запустить с помощью терминала, то, я думаю, вам нужно вручную указать файл запуска. json в настройках. Смотрите опцию --launch-profile здесь: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-run

0 голосов
/ 26 февраля 2020

dotnet run попытается автоматически загрузить MyApplication\Properties\launchSettings.json. Если файл launchSettings. json существует и установлена ​​привязка «все адреса»:

{
  "profiles": {
    "Uno": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://0.0.0.0:5001;http://0.0.0.0:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Тогда запуск приложения должен дать такой результат:

> dotnet run
info: Microsoft.Hosting.Lifetime[0]
    Now listening on: https://0.0.0.0:5001
info: Microsoft.Hosting.Lifetime[0]
    Now listening on: http://0.0.0.0:5000

и проверку открытых портов:

> netstat -na | ? { $_ -match "5000|5001" }
  TCP    0.0.0.0:5000           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5001           0.0.0.0:0              LISTENING

Если launchSettings. json не существует или не существует с другим именем, будет применяться привязка по умолчанию:

> mv .\Properties\launchSettings.json .\Properties\launch.json
> dotnet run
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:5001

, если вы не укажете URL-адреса, используя указанный параметр c: сервер .urls = "http://0.0.0.0: 5000; https://0.0.0.0: 5001"

Также обратите внимание, что при первом подключении любого приложения к 0.0.0.0:port появляется следующее окно: enter image description here Очень легко пропустить это, если вы находитесь в настройке с несколькими мониторами или если вы сразу же сфокусируетесь на другом windows. Кроме того, в этом диалоговом окне будет задано правило брандмауэра для приложения c, поэтому, возможно, вы создали правило для приложения React, а не правило для приложения do tnet.

...