我通过dotnet new webapi
(v3.1.101)创建了示例dotnet项目,并将LachSettings.json的applicationUrl
更新为第一个http:*:5000
,然后更新到http:0.0.0.0:5000
。当我尝试去http://<MY_COMPUTER_NETWORK_NAME>:5000/WeatherForecast
时,它会超时,但是当我在本地尝试http://localhost:5000/WeatherForecast
时,它会工作。
我在端口5000上运行了一个React,我可以成功地远程连接到它,所以我不认为它是防火墙问题。
我在一台Mac上跑。我也尝试过添加.UseUrls(...)
,但没有成功。
为什么我不能远程连接?
提前感谢!
发布于 2020-02-25 22:12:00
我在Windows中使用VSCode,我注意到我不能使用终端上的dotnet run命令,我必须从Debug侧边栏窗口点击play才能工作,然后我可以从同一网络上的其他计算机连接。
如果您想使用终端启动,那么我认为您必须在选项中手动指定launch.json文件。请参见--启动配置文件选项:https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-run
发布于 2020-02-26 05:51:44
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
除非使用特定选项指定urls : server.urls="http://0.0.0.0:5000;https://0.0.0.0:5001“
还请注意,当任何应用程序第一次尝试绑定到0.0.0.0:port时,会出现这样一个窗口:
如果您处于多监视器设置中,或者如果您立即将注意力集中在其他窗口上,则很容易错过它。另外,这个对话框将设置一个特定于应用程序的防火墙规则,所以您可能为React应用程序创建了规则,而不是为dotnet应用程序创建规则。
https://stackoverflow.com/questions/60401553
复制相似问题