zoukankan      html  css  js  c++  java
  • Ubuntu部署Asp.net core网站无法访问

    前几天应工作需要,在阿里云上部署一个测试站点。本以为分分钟的事情,没想到打脸了。

    当时直接新建一个webapi项目,publish后直接上传到阿里云,随后设置nginx转发网站端口5000。

    接着打开网站测试访问,结果傻眼了,502.....。

    于是乎,使用dotnet命令行启动,指定端口8080,更改nginx配置转而监听8080。测试,又打不开。

    明明是按照众大神的文章一步一步来的,怎么会出错呢?搞不明白。随后老老实实阅读微软官方文档,

    终于发现问题所在。原来是我没有设置Kestrel的监听端口。

    论基础的重要性!!!要好好读书o(╥﹏╥)o,夯实基本功。

    经历说完了,接下来说说如何配置网站端口。

    设置的方式有三种:

    第一种:Program类的CreateHostBuilder方法指定Urls

    public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseUrls("http://*:8080");
                        webBuilder.UseStartup<Startup>();
                    });

    第二种:使用配置文件Hosting.json

    {
      "urls": "http://*:8080"
    }

    项目需要添加引用

    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0"

    Program代码

    public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }).ConfigureHostConfiguration(configHost => { 
                        configHost.SetBasePath(Directory.GetCurrentDirectory());
                        configHost.AddJsonFile("hosting.json", optional: true, reloadOnChange : true);
                    });

    第三种:使用命令行配置

    dotnet demo.dll --environment development --urls "http://*:8081"

    项目需要添加引用

    "Microsoft.Extensions.Configuration.CommandLine": "3.1.2"

    Program代码

    public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }).ConfigureHostConfiguration(configHost => { 
                        configHost.AddCommandLine(args);
                    });

    注:三种方式可同时配置,但是具有优先级:UseUrls < 文件配置 < 命令行配置

  • 相关阅读:
    Java中的匿名对象、内部类、包、代码块
    Java中的final和static关键字
    Java中的this与super关键字
    Java中的构造方法
    Java中的多态
    Vue+Element中Table懒加载,新增、删除操作后手动更新
    JQ取消hover事件
    github.com访问慢解决
    vue cli3 子目录问题
    右键事件 contextmenu
  • 原文地址:https://www.cnblogs.com/lifuquan/p/12492832.html
Copyright © 2011-2022 走看看