你需要知道的这几种 asp.net core 修改默认端口的方式

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

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

骨架代码:

640?wx_fmt=png

发布如下:

640?wx_fmt=jpeg

 

一:解决办法1(UseUrls)

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

640?wx_fmt=png

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

640?wx_fmt=png

640?wx_fmt=png

 

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

送到配置文件中。 

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

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

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

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

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

640?wx_fmt=png 

2. webhost代码修改

640?wx_fmt=png

640?wx_fmt=png

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

三:不够优雅后的整合

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

640?wx_fmt=png

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

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

640?wx_fmt=png

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

640?wx_fmt=png

 

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

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

640?wx_fmt=png

 

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

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

1. dockerfile

640?wx_fmt=png

2. publish 文件夹

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

640?wx_fmt=png 

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

640?wx_fmt=png

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

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

 

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

640?wx_fmt=png

640?wx_fmt=png

 

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

[root@localhost tsweb]# docker logs b-webcore-v1
Hosting environment: Production
Content root path: /dataNow listening on: http://[::]:80Application 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]# 

   640?wx_fmt=png

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

原文链接:https://www.cnblogs.com/huangxincheng/p/9569133.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网【每日一题】5月18日 「土」秘法地震

链接: 文章目录题目描述题解:代码:时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld题目描述 帕秋莉掌握了一种土属性魔法 这种魔法可以在一片kk大小…

AspNetCore 中使用 InentityServer4(2)

基于上一篇文章 实现对IdnetityServer4 服务的使用1:添加接口解决方案,并且使接口受认证服务的保护:首先在解决方案中添加Api项目如下图所示:在API项目中添加Nuget 引用 如下图所示:Install-Package IdentityServer4.A…

Visual Studio 2017 15.8概览

Microsoft正式发布VS2017的第八次更新,即15.8。15.8提供了今年夏天预览的大量新特性,包括Code Cleanup、IDE支持多重查补(Multiple Caret)、Visual Studio Code和ReSharper快捷键设置等。各类开发人员均可受益于这些已供使用的新特…

利用.NET Core类库System.Reflection.DispatchProxy实现简易Aop

Aop即是面向切面编程,众多Aop框架里Castle是最为人所知的,另外还有死去的Spring.NET,当然,.NET Core社区新秀AspectCore在性能与功能上都非常优秀,已经逐渐被社区推崇和有越来越多的人使用。感谢柠檬同学的礼物&#x…

当我们谈高性能时,我们谈些什么?(送书活动)

网站越快,用户的黏性就越高;网站越快,用户忠诚度更高;网站越快,用户转化率越高。简言之,速度是关键。——《Web 性能权威指南》显然,高性能意味着“快”。但对快的定义,在不同的系统…

Asp.net Core 2.1新功能Generic Host(通用主机)深度学习

什么是Generic Host ?这是在Asp.Net Core 2.1加入了一种新的Host,现在2.1版本的Asp.Net Core中,有了两种可用的Host。Web Host –适用于托管Web程序的Host,就是我们所熟悉的在Asp.Net Core应用程序的Mai函数中用CreateWebHostBuilder创建出来的常用的We…

520 钻石争霸赛 题解

说好的钻石难度,结果本人菜的一地。。只有88分。。。。 文章目录7-1 考试周7-2 真的恭喜你7-3 平均成绩7-4 古风AB难度开始上升7-5 猜近似数字7-6 随机输一次7-7 阶乘的非零尾数7-8 三足鼎立前四题十分钟AC后两题二十分钟自闭第五题玄学卡点不知为何7-1 考试周 模拟…

.NET Core 跨平台物联网框架 ServerSuperIO.Core,一套设备驱动通吃嵌入式、上位机、云服务...

一、概述我们的大数据平台(云)平台的数据接收服务基于ServerSuperIO开发,因为集成的功能比较多,无法实现跨平台,现在跑在Windows下。但是云端体系化、标准化建设,跨平台是必走的技术路线。在ServerSuperIO基…

asp.net core添加全局异常处理及log4net、Nlog应用

一、介绍此篇文章将会介绍项目的全局异常收集以及采用log4net或者NLog记录。众所周知,一旦自己的项目报错,如果没有进行处理都是显示不友好的,有得甚至直接爆出错误页面,看的也是很奇怪。为了避免出现这样的错误以及在错误出现的时…

牛客网 【每日一题】5月20日题目 简单瞎搞题

比赛链接 文章目录题目描述题解:代码:题目描述 输入描述: 第一行一个数 n。 然后 n 行,每行两个数表示 li,ri。 输出描述: 输出一行一个数表示答案。 示例1 输入 5 1 2 2 3 3 4 4 5 5 6输出 26备注: 1 ≤ n , li , ri ≤ 100 题解&#xf…

ASP.NET Core 2.0利用MassTransit集成RabbitMQ

在ASP.NET Core上利用MassTransit来集成使用RabbitMQ真的很简单,代码也很简洁。近期因为项目需要,我便在这基础上再次进行了封装,抽成了公共方法,使得使用RabbitMQ的调用变得更方便简洁。那么,就让咱们来瞧瞧其魅力所在…

《通过C#学Proto.Actor模型》之 HelloWorld

在微服务中,数据最终一致性的一个解决方案是通过有状态的Actor模型来达到,那什么是Actor模型呢?Actor是并行的计算模型,包含状态,行为,并且包含一个邮箱,来异步处理消息。关于Actor的介绍可参考…

[XSY] 计数(DP,NTT,分治)

计数 考虑转化题目,变为网格上有若干个点,要从(0,0)(0,0)(0,0)走到(n,an1)(n,a_{n1})(n,an1​) ,每一步只能往右走一步或往上走一步,且若当前在(i,j)(i,j)(i,j) ,必须满足0≤j≤ai10\leq j\leq a_{i1}0≤j≤ai1​&…

.Net Core应用框架Util介绍(一)

距离上次发文,已经过去了三年半,这几年技术更新节奏异常迅猛,.Net进入了跨平台时代,前端也被革命性的颠覆。回顾2015年,正当我还沉迷于JQuery EasyUi的封装时,突然意识到技术已经过时。JQuery在面对更加复…

使用.NET Core+Docker 开发微服务

.NET Core发布很久了,因为近几年主要使用java,所以还没使用过.NET Core,今天正好有一个c#写的demo,需要做成服务,不想再转成java来实现,考虑使用.NET CORE来尝下鲜,目标是开发一个微服务,然后部…

Steeltoe之Config客户端篇

Steeltoe是一款开源项目,其目标是选取源自Netflix及其它公司的工具,使它们能够运用于.NET社区。它不仅可以在.NET Core上,也可以在.NET Framework 4.X以上使用。此外,大多数的组件能够同时运行在本地机器及Cloud Foundry(一个领先…

[XSY] 绿色(圆方树、树形DP、树上差分)

绿色 题意简述 题解 首先,每次修改完点权后,重新考虑一遍所有路径显然是不现实的,所以我们考虑求出经过每个点的两端同色的简单路径数,这样权值和容易统计和修改。 接下来分析仙人掌上的简单路径性质。一条简单路径上的边&…

牛客网 【每日一题】5月29日 管道取珠

链接: 文章目录题目描述题意:题解:代码:时间限制:C/C 2秒,其他语言4秒 空间限制:C/C 524288K,其他语言1048576K 64bit IO Format: %lld题目描述 管道取珠是小X很喜欢的一款游戏。在本…

半天搭建你的Jenkins持续集成与自动化部署系统

前言相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛。由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,…

.Net业务搭配实用技术栈

前言昨天有篇文章在讨论webform的设计思路,我已经四五年不用webform了,虽然它也提供了HttpModule和httphandle来处理请求,提供了一般处理程序ashx来简化处理流程,但依然会想起它的form runatserver,想起注册客户端脚本…