介绍Fourth Coffee 网站从 ASP.NET Web Pages Bakery 模板站点开始。这个模板站点提供了“最先进水平” 在线订单系统,允许用户下单订购各种各样的烘培食品。从技术角度看,这个网站展示了:使用基于文件的数据库来存储产品信息基本数据访问创建和处理表单并通过 WebMail 帮助程序功能发送电子邮件在本系统中,将 Web Pages 版本移植到 Razor Pages。总共分为7个步骤,每个步骤检查 Razor Pages 开发的一个方面。此后,Bakery网站将...
前面的文章介绍了如何进行权限控制,即访问控制器或者方法的时候,要求当前用户必须具备特定的权限,但是如何在程序中进行权限的分配呢?下面就介绍下如何利用Microsoft.AspNetCore.Identity.EntityFrameworkCore框架进行权限分配。在介绍分配方法之前,我们必须理解权限关系,这里面涉及到三个对象:用户,角色,权限,权限分配到角色,角色再分配到用户,当某个用户属于某个角色后,这个用户就具有了角色所包含的权限列表,比如现...
一、 理解ServiceCollection之前先要熟悉几个概念:DIP、IOC、DI、Ioc容器; 二、 接下来先简单说一下几个概念问题: 1、DIP(依赖倒置原则):六大设计原则里面一种设计原则,它转换了依赖关系,高层模块不依赖于底层模块的实现,而低层模块要依赖于高层模块的接口定义,总的原则就是高层和底层都不互相依赖,两者都依赖与抽象,抽象不依赖于实现,实现应该依赖于抽象 2、IOC(控制反转):一种反转流、依赖和接口的方...
前言????全局异常处理是我们编程过程中不可或缺的重要环节。有了全局异常处理机制给我们带来了很多便捷,首先我们不用满屏幕处理程序可能出现的异常,其次我们可以对异常进行统一的处理,比如收集异常信息或者返回统一的格式等等。ASP.NET Core为我们提供了两种机制去处理全局异常,一是基于中间件的方式,二是基于Filter过滤器的方式。Filter过滤器的方式相对来说比较简单,就是捕获Action执行过程中出现的异常,然后调用注册的Fi...
使用ENTRYPOINT,而不是CMD,至于这俩命令有啥区别,百度下吧。ENTRYPOINT ["dotnet", "LS.Saas.BaseInfo.HttpApi.Host.dll"]Startup.cs中的Configure方法注入:IApplicationLifetime lifeTime,它的ApplicationStopping就可以捕获到停止状态,不管是控制台停止,还是docker停止。//注销服务 lifeTime.ApplicationStopping.Register(() => {client.Agent.ServiceDeregister(serviceId).GetAwaiter().GetResult(); });1.docker stop...
对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战。在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你创建良好的文档和帮助页面。 Swashbuckle 可以通过修改 Startup.cs 作为一组 NuGet 包方便的加入项目。Swashbuckle 是一个开源项目,为使用 ASP.NET Core MVC 构建的 Web APIs 生成 Swagger 文档。Swagger 是一个机器可读的 RESTful API 表现层,它可以支持交互式文档...
引言在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情。或者详细点,或者简单点。那么有没有一种快速有效的方法来构建api说明文档呢?答案是肯定的, Swagger就是最受欢迎的REST APIs文档生成工具之一!为什么使用Swagger作为REST APIs文档生成工具Swagger 可以生成一个具有互动性的API...
原文:ASP.NET Core 整合Autofac和Castle实现自动AOP拦截前言:除了ASP.NETCore自带的IOC容器外,我们还可以使用其他成熟的DI框架,如Autofac,StructureMap等(笔者只用过Unity,Ninject和Castle)。1.ASP.NET Core中的Autofac首先在Project.json的Dependency节点为中添加如下引用: "Microsoft.Extensions.DependencyInjection": "1.0.0","Autofac": "4.1.1","Autofac.Extensions.DependencyInjection": "4.0.0",接着我们也修改St...
概述 上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建。微软爸爸官方文档:使用新数据库在 ASP.NET Core 上开始使用 EF Core 数据库表字段命名规范 步骤 1. 右击 Entity 项目,点击“管理NuGet程序包” 2. 安装以下三个包Microsoft.EntityFrameworkCore 安装版本:2.1.0Microsoft.EntityFrameworkCore.Tools 安装...
主机负责应用程序启动和生存期管理.共有两个主机 API :1.Web 主机 : 适用于托管 Web 应用,基于 IWebHostBuilder ;2.通用主机 : 适用于托管非 Web 应用. 基于 HostBuilder .官方:通用主机的目标是将 HTTP 管道从 Web 主机 API 中分离出来,从而启用更多的主机方案。 基于通用主机的消息、后台任务和其他非 HTTP 工作负载可从横切功能(如配置、依赖关系注入 [DI] 和日志记录)中受益通用主机是 ASP.NET Core 2.1 中的新增功能,不适...
IIS一般默认 应用程序池有设置固定时间间隔(分钟) 默认1740,以及闲置超时(分钟) 默认20;如果我们 asp.net core+quartz.net 部署在IIS上执行长期定时任务时,需要将上来两项内容设置成0,(不回收);不然我们的定时任务会在IIS做回收时清理掉我们的定时任务。导致任务停止;如果可以做定期检测也是一种方式,本人比较偷懒,就不做回收。但是否会造成其他问题,需要观察 原文:https://www.cnblogs.com/yqf0317/p/13264392.ht...
在本文中,我将展示如何使用DfaGraphWriter服务在ASP.NET Core 3.0应用程序中可视化你的终结点路由。上面文章我向您演示了如何生成一个有向图(如我上篇文章中所示),可以使用GraphVizOnline将其可视化。最后,我描述了应用程序生命周期中可以检索图形数据的点。作者:依乐祝原文地址:https://www.cnblogs.com/yilezhu/p/13335749.html译文地址:https://andrewlock.net/adding-an-endpoint-graph-to-your-aspnetcore-applicatio...
在上一篇中我们主要介绍如何在Asp.Net Core中同步Kafka消息,通过上一篇的操作我们发现上面一篇中介绍的只能够进行简单的首发kafka消息并不能够消息重发、重复消费、乐观锁冲突等问题,这些问题在实际的生产环境中是非常要命的,如果在消息的消费方没有做好必须的幂等性操作,那么消费者重复消费的问题会比较严重的,另外对于消息的生产者来说,记录日志的方式也不是足够友好,很多时候在后台监控程序中我们需要知道记录更多的关于...
原文:ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室这是一个极其简陋的聊天室!这个例子只是在官方的例子上加了 Group 的用法而已,主要是官方给的 Group 的例子就两行代码,看不出效果.第一步:修改 chat.js"use strict";//创建一个连接var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();//定义客户端的 ReceiveMessage 方法 connection.on("ReceiveMessage", function (user, mess...
前言本文我们来探讨下JWT VS Session的问题,这个问题本没有过多的去思考,看到评论讨论太激烈,就花了一点时间去研究和总结,顺便说一句,这就是写博客的好处,一篇博客写出有的可能是经验积累,有的可能是学习分享,但都逃不过看到文章的你有更多或更好的想法,往返交流自身能收获更多,何乐而不为呢?希望本文能解惑或者能得到更多的交流。我们可直接抛出问题:使用客户端存储的JWT比服务端维持Session更好吗? 基于JWT和Sessio...