首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在网络上从远程计算机上访问ASP.NET核心API

无法在网络上从远程计算机上访问ASP.NET核心API
EN

Stack Overflow用户
提问于 2020-02-25 19:03:43
回答 2查看 420关注 0票数 4

我通过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(...),但没有成功。

为什么我不能远程连接?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2020-02-26 05:51:44

dotnet run将尝试自动加载MyApplication\Properties\launchSettings.json。如果文件launchSettings.json存在并且设置了“所有地址”绑定:

代码语言:javascript
运行
复制
{
  "profiles": {
    "Uno": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://0.0.0.0:5001;http://0.0.0.0:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

然后,运行应用程序应该会给出以下结果:

代码语言:javascript
运行
复制
> 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

检查开放港口:

代码语言:javascript
运行
复制
> 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不存在或不具有不同的名称,默认绑定将适用于:

代码语言:javascript
运行
复制
> 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应用程序创建规则。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60401553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档