广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >asp.net core 修改默认端口的几种方法
  • 912
分享到

asp.net core 修改默认端口的几种方法

ASP.NET默认方法netcoreASP 2022-06-07 20:06:36 912人浏览 独家记忆
摘要

  一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管

  一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望

框架所管制,那如何实现默认端口的修改呢?

骨架代码:


public class Program
 {
 public static void Main(string[] args)
 {
  CreateWEBHostBuilder(args).Build().Run();
 }
 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  WebHost.CreateDefaultBuilder(args)
  .UseStartup<Startup>();
 }

发布如下:

一:解决办法1(UseUrls)

       骨架代码就那么几行,很容易在这个IWebHostBuilder中找到一个叫做UseUrls的方法,从注解中可以看得出来让WebHost监听指定的端口号,截图如下:

那么答案就出来了,你需要自己来指定一下端口,改完之后截图如下:


public class Program
 {
 public static void Main(string[] args)
 {
  CreateWebHostBuilder(args).Build().Run();
 }
 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  WebHost.CreateDefaultBuilder(args)
   .UseUrls("Http://*:8080")
  .UseStartup<Startup>();
 }

但是在发布之后,你突然发现,卧槽,端口冲突了,我想换端口,tmd我还得为此再发一次程序,一个字麻烦,说一送一。差点被砍到的第一反应就是把硬编码

送到配置文件中。

二:解决办法2 (host.json)

       你会突然发现要使用到的Configuration属性只能在Startup类中,毕竟在WebHost的Build之前ServiceCollection都没有初始化,哪里有统一化的配置系统呢,

 那怎么办,还能怎么办,自己定义一个Configuration了,然后修改的步骤如下:

1. 新增一个host.JSON,名字随便定义,自己看得懂就行啦。


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

2. webhost代码修改


public static IWebHostBuilder CreateWebHostBuilder(string[] args)
 {
  var configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory)
      .AddjsonFile("host.json")
      .Build();
  var url = configuration["url"];
  return WebHost.CreateDefaultBuilder(args).UseUrls(configuration["url"])
       .UseStartup<Startup>();
 }

      问题倒是解决了,但是总发现有一点不爽,突然新来的Configration就好像半路杀出的陈咬金,所以说如果将陈咬金收编过来就完美了。

三:不够优雅后的整合

      接下来你很容易会在WebHostBuilder中发现另一个方法UseConfiguration,看参数就是用来接收ConfigurationRoot的,所以就把代码修改如下:


public static IWebHostBuilder CreateWebHostBuilder(string[] args)
 {
  var configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory)
      .AddJsonFile("host.json")
      .Build();
  //var url = configuration["url"];
  return WebHost.CreateDefaultBuilder(args).UseConfiguration(configuration)
       .UseStartup<Startup>();
 }

        但是这里有一个问题,asp.netcore能识别我自定义的url吗?肯定是不能识别的啦,那问题就是,AspnetCore模式会用哪一个key作为url的地址呢??

要找到答案的话得需要从源码上啦,从UseUrls入手吧。

从上面可以看到,UseUrls默认是使用 WebHostDefaults.ServerUrlsKey 作为url的key的,然后继续F12看一下它的 内容是什么?

   好了,真想大白了,原来是urls,接下来我只需要把host.json 的url改成urls就可以了,对吧。


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

 四:解决办法3 (使用docker)

      如果你不想做出任何改变,不想做任何退步,那没办法,只能把你关进Docker里啦。

1. dockerfile


FROM microsoft/dotnet:2.1-aspnetcore-runtime
MAINTAINER hxc@qq.com
RUN mkdir /data
COPY ./publish/ /data
WORKDIR /data
CMD [ "dotnet","WebApplication1.dll" ]

2. publish 文件夹

   在dockerfile的同级目录下,新建一个publish文件夹用来存放当前dll文件。

3. 通过build从dockerfile中构建镜像


[root@localhost tsweb]# docker build --rm -f ts.dockerfile -t a/netcore:v1 .
Sending build context to Docker daemon 2.56 kB
Step 1/6 : FROM microsoft/dotnet:2.1-sdk
 ---> bde01d9ed6eb
Step 2/6 : MAINTAINER hxc@qq.com
 ---> Using cache
 ---> 3af0c3f7c416
Step 3/6 : RUN mkdir /data
 ---> Using cache
 ---> 97137ffc5449
Step 4/6 : COPY ./publish/ /data
 ---> Using cache
 ---> 77a94f1a0b8f
Step 5/6 : WORKDIR /data
 ---> Using cache
 ---> 6778c2054a7b
Step 6/6 : CMD dotnet WebApplication1.dll 
 ---> Running in e4a69b32e702
 ---> 9ed3a9769610
Removing intermediate container e4a69b32e702
Successfully built 9ed3a9769610

4. 最后启动镜像,用8888绑定到默认的5000端口


[root@localhost tsweb]# docker run -d -p 8888:5000 --name a-webcore-v1 a/netcore:v1
f94c727b98d5654aa560308752c2af7cde550b6cc06c520bd438e4ccf1fa616d

5. 然后你清楚的看到8888端口已经打开了,但是却不能访问,尴尬。。。


[root@localhost tsweb]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address  Foreign Address  State PID/Program name 
tcp 0 0 192.168.122.1:53 0.0.0.0:*  LISTEN 1834/dnsmasq 
tcp 0 0 0.0.0.0:22  0.0.0.0:*  LISTEN 1135/sshd  
tcp 0 0 127.0.0.1:631  0.0.0.0:*  LISTEN 1136/cupsd  
tcp 0 0 127.0.0.1:25  0.0.0.0:*  LISTEN 1582/master  
tcp6 0 0 :::3306   :::*   LISTEN 2451/Mysqld  
tcp6 0 0 :::22   :::*   LISTEN 1135/sshd  
tcp6 0 0 ::1:631   :::*   LISTEN 1136/cupsd  
tcp6 0 0 :::8888   :::*   LISTEN 9531/docker-proxy-c 
tcp6 0 0 ::1:25   :::*   LISTEN 1582/master  
[root@localhost tsweb]#

6. 解决这个问题的第一步就要看一下 容器中真的开放出来了5000端口吗,可通过docker logs 或 docker ps 查看


[root@localhost tsweb]# docker logs b-webcore-v1
Hosting environment: Production
Content root path: /data
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.
[root@localhost tsweb]# 

  原来开放的是80端口哈~~~~  那就简单了,把原来的容器给删了,重新生成一个容器再映射一下就好啦。


[root@localhost tsweb]# docker rm -f b-webcore-v1
b-webcore-v1
[root@localhost tsweb]# docker run -d -p 8888:80 --name b-webcore-v1 b/netcore:v1
e58039e02740e37cc431c1176fbf586ab19b02bd9331040e4719e9d46e51627d
[root@localhost tsweb]# 

终于解决了,好了,本篇就说到这里,希望对你有帮助。

以上就是ASP.net core 修改默认端口的几种方法的详细内容,更多关于asp.net core 修改默认端口的资料请关注编程网其它相关文章!

您可能感兴趣的文章:asp.Net Core常见的4种数据加密算法asp.net Core对Controller进行单元测试的完整步骤详解asp.net core 依赖注入详解ASP.NET Core中配置监听URLs的五种方式[Asp.Net Core] 浅谈blazor Server Side


--结束END--

本文标题: asp.net core 修改默认端口的几种方法

本文链接: https://www.lsjlt.com/news/30750.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • asp.net core 修改默认端口的几种方法
      一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管...
    99+
    2022-06-07
    ASP.NET 默认 方法 net core ASP
  • mysql的默认端口号修改方法
    下面讲讲关于mysql的默认端口号修改方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完mysql的默认端口号修改方法这篇文章你一定会有所受益。    &n...
    99+
    2022-10-18
  • WindowsServer2012远程默认端口3389的修改方法
    目录1 修改注册表项12 修改注册表项23 防火墙开放端口4 重启服务器新弄了一台Windows Server 2012操作系统,开始瞎折腾啊. 在开始-----运行菜单里,输入re...
    99+
    2022-11-13
  • 如何修改asp.net core5程序的默认端口号
    本篇内容主要讲解“如何修改asp.net core5程序的默认端口号”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何修改asp.net core5程序的默认端口号”吧!在本...
    99+
    2023-06-26
  • nginx修改默认端口方法图文详解
    1、进入nginx.conf文件 2、修改listen后的默认端口号改为想改的端口号(如下图) 3、设置防火墙允许通过修改的端口号 1、firewall-cmd --zone=pu...
    99+
    2022-11-13
  • centos 修改ssh默认端口号的方法示例
    linux服务器一般默认的ssh端口号都为22,所以在大部分的使用者手中出于安全考虑就需要修改ssh的默认端口号,下面为为修改ssh默认端口号方法 一:修改/etc/ssh/sshd_config配置文件(注意:这里是...
    99+
    2022-06-04
    centos 修改ssh默认端口号 centos7修改ssh端口号
  • CentOS6.5与CentOS7 ssh修改默认端口号的方法
    本文实例讲述了CentOS6.5与CentOS7 ssh修改默认端口号的方法。分享给大家供大家参考,具体如下: CentOS6.5ssh修改默认端口号 先查看下服务器端口号范围: # sysctl -a|grep i...
    99+
    2022-06-04
    CentOS6.5 CentOS7 ssh 修改 默认端口号
  • 修改asp.netcore5程序的默认端口号
    以下文章来源于微信公众号DotNetCore实战 在本地开发环境下,我们知道可以通过修改launchSettings.json 文件中的端口号来实现端口切换。 "WebApplica...
    99+
    2022-11-12
  • centos7怎么修改默认的ssh端口
    要修改CentOS 7上的默认SSH端口,您可以按照以下步骤进行操作:1. 打开SSH配置文件`/etc/ssh/sshd_conf...
    99+
    2023-08-17
    centos7
  • 云服务器ssh修改默认端口的方法是什么
    修改云服务器SSH默认端口的方法有以下几种:1. 修改SSH配置文件:登录到云服务器,找到SSH配置文件(一般是/etc/ssh/s...
    99+
    2023-08-09
    云服务器
  • 修改mysql默认字符集的两种方法
    下面微点阅读小编就为大家介绍两种修改mysql默认字符集的方法。需要的朋友可以过来参考下 (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如 default-character-set = utf8    ...
    99+
    2023-09-16
    mysql adb android
  • ubuntu修改ssh远程连接端口号的几种方法
    一般情况下 打开ssh配置文件 sudo vim /etc/ssh/sshd_config 找到如下一行: Port 22 将后面的22修改为想要设置的端口号 然后重启ssh服务 sudo service ssh res...
    99+
    2022-05-25
    ubuntu 修改 ssh 远程端口
  • 详解如何修改nginx的默认端口
    首先找到配置文件在哪 whereis nginx.conf 你可以这几个目录都看一遍,看看配置文件在哪里。我这边正确目录是 /etc/nginx 其次找到真正的配置...
    99+
    2022-11-12
  • 如何修改系统默认的ssh端口?
    如何修改系统默认的ssh端口? 修改系统默认的ssh端口为1222,参考步骤如下: 1、修改sshd配置文件 sudo vim /etc/ssh/sshd_config 将该文件里面的“# port 22”参数改为“port 1222”后保...
    99+
    2023-08-18
    ssh 服务器 网络
  • 如何修改Spring Boot中Tomcat默认的端口号
    如何修改Spring Boot中Tomcat默认的端口号?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Spring Boot 内置Tomcat默认端口号为8080,在开发多...
    99+
    2023-05-31
    springboot tomcat omc
  • phpmyadmin修改默认密码的方法
    小编给大家分享一下phpmyadmin修改默认密码的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!set pass...
    99+
    2022-10-18
  • ASP.NET Core MVC 修改视图的默认路径及其实现原理解析
    本章将和大家分享如何在ASP.NET Core MVC中修改视图的默认路径,以及它的实现原理。 导语:在日常工作过程中你可能会遇到这样的一种需求,就是在访问同一个页面时PC端和移动端...
    99+
    2022-11-12
  • 修改mysql默认字符集的方法
    要修改MySQL的默认字符集,可以采取以下方法:1. 在MySQL配置文件中修改:- 打开MySQL的配置文件(通常是my.cnf或...
    99+
    2023-09-22
    MySQL
  • 修改mysql中列默认值的方法
    小编给大家分享一下修改mysql中列默认值的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!修改mysql中列的默认值的方法:...
    99+
    2022-10-18
  • 怎么在Linux系统中修改SSH默认的22端口
    今天就跟大家聊聊有关怎么在Linux系统中修改SSH默认的22端口,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第1步:假如要限制通过SSH登陆Linux的IP,那么可以如下做: 首...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作