zoukankan      html  css  js  c++  java
  • windows下asp.net core 低成本最简化部署方式

    直接使用exe运行

    大家都知道, .net core 是跨平台的,可以运行在任何操作系统。新的asp.net core 可以不再依赖IIS部署。
    最简化的部署方式,无非就是双击web站点的exe程序运行。

    如下图:

    默认情况下,会自动启动

    info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
          User profile is available. Using 'C:UsersAdministratorAppDataLocalASP.NETDataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
    info: Microsoft.Hosting.Lifetime[0]
          Now listening on: http://localhost:5000
    info: Microsoft.Hosting.Lifetime[0]
          Now listening on: https://localhost:5001
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Production
    info: Microsoft.Hosting.Lifetime[0]
          Content root path: D:CodesGithub
    ickxieProjectsProject.AlphaProject.CoreinDebug
    etcoreapp3.1
    

    发布独立运行模式

    发布程序配置为独立, 目标通常为x64

    绑定不同的域名和端口

    框架默认提供4种绑定方式
    Specify URLs using the:

    • 使用环境变量 ASPNETCORE_URLS
    • 使用命令行参数 --urls
    • 使用配置文件
    • 使用扩展方法 UseUrls
      详细用法, 见参考来源[2]

    Kestrel配置

    ppsettings.json文件中会加载使用Kestrel配置, 程序启动时会默认加载此文件。

    {
      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "http://localhost:5000"
          },
          "HttpsInlineCertFile": {
            "Url": "https://localhost:5001",
            "Certificate": {
              "Path": "<path to .pfx file>",
              "Password": "<certificate password>"
            }
          },
          "HttpsInlineCertStore": {
            "Url": "https://localhost:5002",
            "Certificate": {
              "Subject": "<subject; required>",
              "Store": "<certificate store; required>",
              "Location": "<location; defaults to CurrentUser>",
              "AllowInvalid": "<true or false; defaults to false>"
            }
          },
          "HttpsDefaultCert": {
            "Url": "https://localhost:5003"
          },
          "Https": {
            "Url": "https://*:5004",
            "Certificate": {
              "Path": "<path to .pfx file>",
              "Password": "<certificate password>"
            }
          }
        },
        "Certificates": {
          "Default": {
            "Path": "<path to .pfx file>",
            "Password": "<certificate password>"
          }
        }
      }
    }
    

    最简化配置

    在应用程序根目录的appsettings.json文件中,新增以下配置:

    若部署在云上,仍无法访问,建议检查是否开启安全策略开放端口。

    本机内部开启防火墙配置

    确保本地操作系统防火墙允许访问此端口。

    netsh advfirewall firewall add rule name="Http Port 80" dir=in action=allow protocol=TCP localport=80
    

    确保管理员模式运行

    某些情况下,例如配置了https证数等,需要管理员权限。最好是以管理员模式运行。

    祝你配置成功,成功运行!

    参考来源:
    [1] https://weblog.west-wind.com/posts/2016/Sep/28/External-Network-Access-to-Kestrel-and-IIS-Express-in-ASPNET-Core#open-your-firewall
    [2] https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#endpoint-configuration

  • 相关阅读:
    联合主键SQL 联合索引
    SQL 对decimal类型转换为int类型
    SQL获取当前时间月份为两位数
    SQL 对结果集进行分组排序过滤重复数据 ROW_NUMBER
    SQL自动流水号函数
    SQL 索引创建
    .Net三层架构
    2016年你应该学习的语言和框架(转)
    MongoDB学习笔记(转)
    干货分享:让你分分钟学会 javascript 闭包(转)
  • 原文地址:https://www.cnblogs.com/mcxie/p/13054105.html
Copyright © 2011-2022 走看看