.NET Core项目部署时自定义端口号

摘要:
我会在有时间的时候总结Linux系统的部署。NETCore项目只使用这种方法。5.IIS部署项目。指定端口号环境:Windows。NET开发人员应该熟悉IIS吗。当我们使用IIS部署Core项目时,它与之前的Framework项目的部署类似。您可以自定义端口号。

不管是在Linux系统还是Windows系统部署.NET Core项目,都会有自定义项目端口号的需求

一、默认的端口号

环境:Linux系统/Windows系统。正常情况下,.NET Core项目发布后的默认端口是5000,发布如下:

.NET Core项目部署时自定义端口号第1张

二、使用UserUrls自定义端口号

环境:Linux系统/Windows系统,.NET Core项目中UserUrls方式      

.NET Core项目部署时自定义端口号第2张

 发布后的情况如下:

.NET Core项目部署时自定义端口号第3张

但是该种方式有个缺点,如果项目发布后发现8001和服务器上的端口冲突,还需要打开代码重新修改端口号,比较麻烦,所以使用这种方式一定要确保端口号没有冲突。那么有没有更好的方式,发现冲突后,可以修改配置文件进行端口号修改,下面介绍。 

三、使用host.json方式自定义端口号

环境:Linux系统/Windows系统。在.NET Core项目中提供了AddJsonFile来加载自定义的配置文件,所以我们可以把端口号的写在配置里面,然后使用AddJsonFile加载到项目中,需要更改端口号的时候直接更改配置文件就可以了,不需要修改代码再发布了,比上一种方案要简单些。

新增一个host.json,配置文件名称可以自定义

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

main代码修改 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace HelloFontWebsocket
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.ConfigureKestrel((context, options) =>
                    {
                        options.Limits.MaxRequestBodySize = int.MaxValue;

                    })
                    .ConfigureAppConfiguration((h, c) =>//指定应用的配置提供程序
                    {
                        c.AddJsonFile($"host.json", true, true);
                    })
                   // .UseUrls("http://*:9010")
                    .UseStartup<Startup>();
                });

    }
}
四、启动程序时手动指定绑定的端口

环境:Linux系统/Windows系统。现在好多公司职责分的很清楚,研发、运维,好多部署的工作都是运维做的,所以我不喜欢在程序中写死这个配置,因为每次部署的时候改程序或者改配置文件是很有风险和很容易背锅的事情。我们知道.net core可以使用dotnet 命令方式去运行 .net core 应用,这种方式使我们的web不再依赖于iis,实现了跨平台。所以在启动程序时手动指定绑定的端口是我最推荐的方式,方法如下:

> dotnet xxx.dll --urls http://*:8001

正常启动程序时,指令是dotnet xxx.dll,我们只要在后面加上要绑定的端口就好了。但是也存在问题,是不是每次启动程序都需要指定端口号,是不是有点麻烦,其实也是有解决办法的,可以利用supervisor作为守护进程,把启动指令写进supervisor配置文件中就好了,这样就算网站因为意外问题被关掉,supervisor依然可以使用设定好的启动命令将网站拉起来。有时间会总结Linux系统上部署.NET Core项目,才用的就是该种方式

五、IIS部署项目,指定端口号

环境:Windows。做.NET开发的应该比较熟悉IIS了,我们利用IIS部署Core项目时和以前的Framework项目的部署差不多,可以自定义端口号。不同的地方可以总结如下:

1、需要配置core环境

2、应用程序池需要采用无托管方式

具体可以看看Windows服务器上部署.NET Core项目

免责声明:文章转载自《.NET Core项目部署时自定义端口号》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OSSEC初探jenkins 配置 ssh连接远程服务器并执行相关命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.Net Core System.IO.Compression.ZipFile实现Zip格式压缩和Zip格式解压缩

一、安装Nuget包 System.IO.Compression.ZipFile Install-package System.IO.Compression.ZipFile 二、ZipFile 类使用 简单操作方法: ZipFile.CreateFromDirectory()---压缩 ZipFile.ExtractToDirectory()---解压缩...

网络编程bind函数详解(转载)

注:该文转载自https://blog.csdn.net/zpznba/article/details/90763798 bind 函数如何选择绑定地址 我们知道bind函数一般用在服务器代码中: struct sockaddr_in bindaddr; bindaddr.sin_family = AF_INET; bindaddr.sin_addr.s_...

Apache Tomcat 7 安装与配置

下载 首先需要下载tomcat7的安装文件,地址如下: http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz 安装与配置 安装之前需要确保已经安装JDK,若没有安装JDK请参考上一篇blog先正确安装JDK: Linux CentOS...

Android开发模拟器启动失败的解决方法

1. 错误提示信息  错误大概意思:连接到adb(android debug bridge)出现了一个严重的错误,你必须重启adb和Eclipse工具,请确保在位置……adb工具被执行了。 adb:是sdk提供的工具,在android-sdk-windowsplatform-tools目录下,通过adb可以连接到android手机或模拟器。像91手机...

Linux| |对于UDP的学习

# 前序 UDP(用户数据报协议)没有连接的,是面向数据报的,是不可靠 # 套接字就是IP地址+端口号 IP地址:4字节 端口号:2字节,也就是说范围是0~65536 端口号分为 知名端口号 0--1023:http,ssh,ftp,telnet等一些协议端口号都是固定的,对于操作系统来说是不能对其进行分配的 一些固定的端口号 ssh服务器,使用22端口...

linux mysql 查看默认端口号和修改端口号

如何查看mysql默认端口号和修改端口号2015-03-1917:42:18 1.登录mysql [root@test/]#mysql-uroot-p Enterpassword: 2.使用命令showglobalvariableslike'port';查看端口号 mysql>showglobalvariableslike'port'...