ASP.NET Core

微服务之Service Fabric 系列 (一):概览、环境安装

不想你离开。 提交于 2020-04-25 06:35:10
参考   微软官方文档 service fabric   百家号 大话微服务架构之微服务框架微软ServiceFabric正式开源 一、概述   1.概念      Azure Service Fabric 是一款分布式系统平台,可方便用户轻松打包、部署和管理可缩放的可靠微服务和容器。 Service Fabric 还解决了开发和管理云本机应用程序面临的重大难题。 开发人员和管理员不需解决复杂的基础结构问题,只需专注于实现苛刻的任务关键型工作负荷,即那些可缩放、可靠且易于管理的工作负荷。 Service Fabric 代表了下一代平台,用于生成和管理在容器中运行的企业级单层云规模应用程序。   2.微服务     微服务是指用小型服务集合来构建服务端应用的方法,每个服务在独立的进程中运行,服务间通过特定协议(http,AMQP)通信,每个服务能够独立开发、部署,拥有自己的领域数据模型和领域逻辑,可以有不同的数据存储技术甚至是不同的编程语言。     微服务的目的在:解耦。解耦是永恒的主题,依赖注入是为了解耦,应用分层是为了解耦,这些可以看做是纵向解耦,而微服务是把应用横向解耦,服务间解耦。     下图是传统一体式应用开发与微服务开发的对比:                     ① 单一式应用包含域特定的功能,通常按照功能层来划分,例如传统三层。       ②

net core web服务器实现

最后都变了- 提交于 2020-04-25 06:26:48
net core 系列 18 web服务器实现 一. ASP.NET Core Module   在介绍ASP.NET Core Web实现之前,先来了解下ASP.NET Core Module。该模块是插入 IIS 管道的本机 IIS 模块(本机是指程序所部署的服务器)。是基于windows平台处理 IIS和进程内IISHttpServer或Kestrel。用于:   (1) 在 IIS 工作进程 (w3wp.exe) 内托管 ASP.NET Core 应用,称为进程内托管模型。   (2) 将 Web 请求转发到运行 Kestrel 服务器的后端 ASP.NET Core 应用,称为进程外托管模型。   在进程内托管时,该模块会使用 IIS 进程内服务器实现,即IISHttpServer。在进程外托管时,该模块仅适用于 Kestrel。 该模块与 HTTP.sys 不兼容。关于IIS 在 Windows 上托管 ASP.NET Core。安装ASP.NET Core Model,在 "asp.net core 系列 9 环境" 中有介绍。     --发布到iis上的配置节点     <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType=

Linux+Nginx+Supervisor部署ASP.NET Core实操手册

雨燕双飞 提交于 2020-04-25 06:26:33
一、课程介绍 在上一节课程《ASP.NET Core托管和部署Linux实操演练手册》中我们学过net core的部署方式多样性和灵活性。我们通过远程工具输入dotnet 程序集名称.dll的方式运行应用,但是一旦关闭远程shell会话,或者服务器重启,应用进程就结束了。因此我们需要一个守护进程来管理我们的dotnet 后台进程,当服务器启动的时候可以自动运行我们的net core web应用程序。 今天就跟大家分享一下如何将ASP.NET Core应用程序以生产环境的标准方式部署在CentOS7上。 如果您对本次分享课程《Linux+Nginx+Supervisor部署ASP.NET Core实操手册》感兴趣的话,那么请跟着阿笨一起学习吧。 废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运 ! 微软高调示爱Linux 二、asp.net core为什么在Linux不用自宿主的方式进行部署? 自宿主的发布方式进行部署会简单很多,为什么生产环境要使用便携的方式进行发布呢? 三、CentOS7+Nginx+Supervisor部署ASP.NET Core实操手册 3.1、环境准备 3.2、 Linux CentOS上安装Nginx以及配置开机启动服务 3.2.1、通过rpm包方式安装nginx 3.2.2、通过源码tar.gz安装包编译方式安装nginx 3.3

ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

给你一囗甜甜゛ 提交于 2020-04-25 04:57:56
  应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用。   ASP.NET Core提供了内置的日志,但没弄明白这么把它输出到文件, 只能在VS的输出中查看, 谁知道怎么弄告诉我一下。( ASP.NET Core 系列目录 ) 本例 GitHub 一、内置日志的使用   上一篇:如何在后台运行一个任务 中使用到了内置的日志,直接在构造中注入一下,然后直接使用即可, 非常方便 public TokenRefreshService(ILogger<TokenRefreshService> logger) { _logger = logger; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { _logger.LogInformation( " Service starting " ); // ************ } 然后在【输出】窗口中就可以看到输出的日志了: 想把它输出到txt中, 没找到相应的方法,试试常见的Nlog吧 二、使用Nlog将日志输出到文件 A.安装Nlog 在NuGet中搜索并安装 NLog.Web.AspNetCore ,

Docker 部署asp.netcore

与世无争的帅哥 提交于 2020-04-25 01:58:59
1、vscode控制台新建项目Dock,如下指令创建项目,关于.netcore创建项目不做详细介绍 dotnet new mvc 2、vscode 安装docker插件 3、vscode窗口键入F1,输入Docker.add Docker Files to Workspace---->接下来选择asp.net core 4、项目目录下会生成Dockfile文件 5、此时我们的docker已经启动,运行powershell,来构建我们的镜像 6、登录Docker,按照提示输入对应用户名和密码,我这里是之前登录过的,不需要再次输入,没有账号的,去 注册 一个就可以. 7、注册完之后创建一个Repository 8、此时我们构建我们的.netcore项目镜像 9、此时查看我们的镜像 10、启动Docker 11、我们此次需要访问我们的网站,需要知道Docker的ip和端口,输入 docker inspect firsttest ,返回如下 12、此时我们访问,如下 13、好了我们现在可以在宿主机访问,docker部署的网站了,此时我们外机访问却访问不了,如下我们可以做一个映射 14,此时访问宿主机ip可以看到如下效果 15、至此我们的.nercore项目成功部署到docker,可以通过访问宿主机的ip,然后映射到docker的ip来实现访问。 来源: oschina 链接: https:

.Net快速上手Nlog日志组件

谁都会走 提交于 2020-04-24 22:54:29
[toc] 一、NLog 简介 NLog是适用于各种.NET平台的灵活,免费的日志记录平台。NLog使写入多个目标变得容易 。(数据库,文件,控制台)并即时更改日志记录配置。(本文主要介绍写日志到文件中) Nlog 官网: https://nlog-project.org/ Nlog 配置说明: https://nlog-project.org/config/ Nlog Github Wiki: https://github.com/NLog/NLog/wiki 注:以下操作为 asp.net core web项目,编辑器为VS2019 二、NLog 安装 2.1 使用程序包管理控制台(Package Manager) PM> Install-Package NLog 2.2 .Net CLI dotnet add package NLog 在项目的根目录下,在cmd窗口中输入上面的命令即可安装。 三. NLog 配置 3.1 Nlog配置方式 通过配置文件; 通过程序代码; 3.2 通过配置文件配置Nlog 在项目的根目录创建Nlog.config文件,并设置文件属性: 具体配置 下面的配置,就是一个简单的配置Nlog.config的demo,将下面的配置复制到Nlog.config中,即可将日志写入到PsTest.log文件中。 <?xml version="1.0"

ASP.NET Core中使用NLog记录日志

孤者浪人 提交于 2020-04-24 22:54:12
2019/10/28, ASP.NET Core 3.0, NLog 4.6.7, NLog.Web.AspNetCore 4.9.0 摘要:NLog在ASP.NET Core网站中的使用,NLog日志写入数据库,NLog日志写入文件 案例代码 编辑于 2020/02/21 : 本文的记录日志封装了统一的NLogUtil方法进行调用写日志,其实可以使用依赖注入的方式得到logger,并且日志按等级过滤,可以考虑看我写的新的关于NLog使用的方法: 《ASP.NET Core搭建多层网站架构【7-使用NLog日志记录器】》 ##需求 1.日志自动写入到数据库、写入到文件 2.appsettings.json数据库连接更改后,不需要去改NLog中的连接地址,启动网站或项目时自动检测变动然后去更改,以appsettings.json为准,保持同步。 3.写入日志时,除了NLog自带的字段,新增LogType自定义字段记录日志类型,例如网站日志、中间件日志等 4.统一的写日志方法,不用每次get一个logger对象(或依赖注入)来记日志 ##安装包 在nuget中安装 NLog 和 NLog.Web.AspNetCore ,这两个是NLog相关的包。 还需要安装NLog写入数据库的数据库适配器,我这里写入到MySQL数据库,所以安装 MySql.Data 如果是写入到SQL

asp.net core 使用NLog记录日志到txt文件

和自甴很熟 提交于 2020-04-24 22:53:40
一、使用VisualStudioCode创建一个 webapi项目 (也可以是mvc等)、一个 类库 (用于封装记录日志方法,当然如果使用依赖注入到控制台项目,就不需要此类库了)。 二、在 类库 中添加 NLog、NLog.Web.AspNetCore 引用(NLog.Web.AspNetCore 是为 ASP.NET Core 添加了对于 NLog 的平台支持), webapi项目 添加对该类库的引用,这样控制台就无需添加nlog的引用了。 三、在 类库 中自定义类,简单封装记录日志方法,代码如下: using System; using Microsoft.Extensions.Logging; using NLog; namespace common { public class NLogHelper { // 每创建一个Logger都会有一定的性能损耗,所以定义静态变量 private static Logger nLogger = LogManager.GetCurrentClassLogger(); public static void Info( string msg) { nLogger.Info(msg); } public static void Error( string msg, Exception ex = null ) { if (ex == null

ASP.NET Core搭建多层网站架构【7-使用NLog日志记录器】

本小妞迷上赌 提交于 2020-04-24 22:53:26
2020/01/29, ASP.NET Core 3.1, VS2019, NLog.Web.AspNetCore 4.9.0 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【7-使用NLog日志记录器】 NLog日志记录器的写入数据库、写入文件、彩色控制台,按等级过滤日志等功能 文章目录 此分支项目代码 本章节介绍了NLog日志记录器的写入数据库、写入文件、彩色控制台,按等级过滤日志等功能,之前写过 ASP.NET Core中使用NLog记录日志 ,仅仅是写入数据库和文件,也没有按等级过滤日志 添加包引用 向 MS.WebCore 类库添加以下包引用: <ItemGroup> <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" /> </ItemGroup> 上一章节中已经添加过,这里再次提示下,已经添加过的不需要重复添加 NLog.Web.AspNetCore 包中已经包含 NLog 包,所以只需要这一个包即可 向 MS.WebApi 应用程序添加以下包引用: <ItemGroup> <PackageReference Include="MySql.Data" Version="8.0.19" /> </ItemGroup> MySql.Data

asp.net core 使用 NLog日志

那年仲夏 提交于 2020-04-24 21:15:11
NLog是一个配置灵活的日志记录类库,拥有输出日志到文件、存储入库、发送到udp地址的高级功能 1 添加 nlog nuget包 Nlog和NLog.Web.AspNetCore 安装完成后 2 在站点根目录下添加配置文件nlog.config <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warn" internalLogFile="internal-nlog.txt"> <targets> <target xsi:type="File" name="file" fileName="nlog-all-${shortdate}.log" layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" /> <target xsi:type="File" name="exception" fileName="nlog-exception-${shortdate}.log