前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何设置 ASP.NET Core 程序监听的 IP 和端口

如何设置 ASP.NET Core 程序监听的 IP 和端口

作者头像
walterlv
发布2020-02-12 15:46:36
6.8K0
发布2020-02-12 15:46:36
举报
文章被收录于专栏:walterlv - 吕毅的博客

如何设置 ASP.NET Core 程序监听的 IP 和端口

Web 服务需要配置监听的 IP 和端口才可以对外提供真正的服务。本文介绍如何设置 ASP.NET Core 程序监听的 IP 和端口。


ASP.NET Core 程序默认集成了 Kestrel 服务器,可以直接对外提供 Web 服务。虽然可以直接提供服务,但通常建议使用反向代理服务器来间接提供服务。因此,本文建议的大多数设置监听 IP 和端口的方法都是“临时方法”,即那种“配置出来”的方法,而不会直接写死在代码中。

如何选择应该监听的 IP 和端口?

一般来说,监听的 IP 可以选择本地回环地址,特定的 IP 以及任意 IP,分别是:

  • 127.0.0.1 127.0.0.2 127.0.0.3…… 本地回环地址
  • 101.199.96.22 特定的 IP
  • 0.0.0.0 任意 IP

监听本地回环地址时,则访问仅限于本机应用程序,不需要管理员权限来添加防火墙配置。如果在本地计算机配置了反向代理服务器,则强烈推荐使用本地回环地址。如果打算直接让服务对外公开提供,则需要设置为 0.0.0.0 任意 IP。

一台计算机上不同的应用不能使用相同的端口,对于端口的选择只要不重复即可。如果希望让 ASP.NET Core 程序自动选择一个不重复的端口,则将其指定为 0。

配置方法

方法一:直接在项目中设置

在项目上右击属性,在调试标签下可以修改应用的启动 URL。虽然这里修改的是项目的设置,最终生成的 ASP.NET Core 程序并不会使用这个设置,但每次通过项目打开时仍然可以使用这个设置。

这种方式仅仅影响调试时候采用的域名 / IP 和端口号。因此,仅在调试期间生效,待发布后,可以直接接入到反向代理服务器中。

方法二:使用 Kestrel 服务器的配置(不推荐)

直接使用 Kestrel 服务器可以在没有反向代理服务器的情况下直接对外提供 ASP.NET Core 的 Web 服务。

如果仅对外提供 http 服务,则设置非常简单:

代码语言:javascript
复制
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
++              webBuilder.ConfigureKestrel(serverOptions =>
++              {
++                  serverOptions.Listen("0.0.0.0", 5000);
++              })
                .UseStartup<Startup>();
            });

如果希望加上 https 的支持,可以阅读我的另一篇博客:

方法三:使用命令行参数指定

使用命令行参数 --urls 可以为 ASP.NET Core 程序指定监听的 URL。

代码语言:javascript
复制
dotnet ./blog.walterlv.com.exe --urls http://0.0.0.0:13800

这个 URL 中的几个信息都会用到:http 协议,监听任意 IP 地址,监听端口 13800。

通常建议为反向代理的服务选用 http,让 https 的支持交给反向代理服务器去做,参见:

方法四:设置环境变量

设置环境变量 ASPNETCORE_URLS 即可为 ASP.NET Core 程序指定监听的 URL,格式与上面使用命令行参数是一样的。

注意,这里说的环境变量是单独为某一个程序设置的环境变量,而不是为用户账户或者操作系统设置的环境变量(那样显然会让所有 ASP.NET Core 程序冲突)。所以通常都是用来在反向代理服务器中配置的。

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/configure-urls-and-port-for-asp-dotnet.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何设置 ASP.NET Core 程序监听的 IP 和端口
    • 如何选择应该监听的 IP 和端口?
      • 配置方法
        • 方法一:直接在项目中设置
        • 方法二:使用 Kestrel 服务器的配置(不推荐)
        • 方法三:使用命令行参数指定
        • 方法四:设置环境变量
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档