异常内容 System.TypeLoadException HResult=0x80131522 Message=Method 'get_IsTraceEnabled' in type 'Abp.Castle.Logging.Log4Net.Log4NetLogger' from assembly 'Abp.Castle.Log4Net, Version=4.5.0.0, Culture=neutral, PublicKeyToken=null' does not have an impleme…
1.安装包 Install-Package log4net.Kafka.Core 2.修改log4net.config 配置文件 <?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="KafkaAppender" type="log4net.Kafka.Core.KafkaAppender, log4net.Kafka.Core&…
demo地址:ABP.WindowsService 该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 参考:https://aspnetboilerplate.com/Pages/Documents/Logging ABP框架使用的是Castle Windsor的日志工具,Castle Windsor定义了日志接口 ILogger,并提供了Log4Net, NLog, Serilog的实现. 首先,nuget添加Abp.Castle…
先进行配置 首先这种需求,一般发生在APP端,我们给APP,不会给所有项目系统的接口给他们用.我们系统有200个接口,但是APP的需求只会用20个.那么这个需求也就应运而生了. 以上为API文件夹中为项目接口,没有啥特别复杂的东西存在. 首先创建好,一个网站项目,进行模块的配置. 首先引入以下的nuget包: 以下是WebApp项目中的packages.config <?xml version="1.0" encoding="utf-8"?> <p…
Server Side(服务端) ASP.NET Boilerplate uses Castle Windsor's logging facility. It can work with different logging libraries: Log4Net, NLog, Serilog... etc. Castle provides a common interface for all logger libraries. So, you're independent from specifi…
一.总体与公共结构 1,ABP配置 2,多租户 3,ABP Session 4,缓存 5,日志 6,设置管理 7,Timing 8,ABPMapper 9,发送电子邮件 二.领域层 10,实体 11,值对象 12,仓储 13,领域服务 14,规格模式 15,工作单元 16,事件总线 17,数据过滤器 三.应用层 18,应用服务 19,数据传输对象 20,验证数据传输对象 21,授权 22,功能管理 23,审计日志 四.分布式服务层 24,ASP.NET Web API Controllers 2…
在abp开发的系统后,需要使用这个系统作单点登录,及其他项目登录账号依靠abp开发的系统.在官方文档上只找到作为登录服务Identity Server Integration,但是host项目却无法使用登录服务生成的Token获取数据.所有的搜索结果包括abp的issue都是说去看identity server4的文档.我比较笨,文档看了还是不会.好在最后还是试出来了. 创建登录中心项目 到官网下载一个最新的模板项目,项目类型自选(我们项目用的vue,所以我选择的vue项目,.net core3…
文档目录 本节内容: 服务端 获取Logger(记录器) Logger的基类 配置 Abp.Castle.Log4Net 包 客户端 服务端 ABP使用Castle Windsor的日志记录工具,它可以和不同的logginh(日志)类库协作:Log4Net.NLog.Serilog等.Castle为所有Logger库提供一个公共接口,所以它独立于logging库,也可以在有需要的时候很容易地替换logging. Log4Net是最流行的Logging库,ABP模板与适当配置后的Log4Net一起…
为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7695258.html 本篇将实现登录.权限控制.日志配置与审计日志的功能.首先我们先实现登录功能,在登录的基础上,通过控权使得只有ID为1988的用户才能创建tweet.最后配置Log4Net日志,并开启审计日志,记录所有Web请求. 简单的界面 为了测试方便,在实现登录功能之前,先简单实现了几个页面: Tweets列表页面 创建tweet页面 登录页面 页面代码没有什么特别的…
一.说明 NLog介绍和使用说明官网:http://nlog-project.org/ NLog和Log4net对比:https://www.cnblogs.com/qinjin/p/5134982.html 二.NLog集成步骤 下载模板项目,下载地址:https://aspnetboilerplate.com/Templates 选择.Net Core项目 新建一个.NET Standard类库项目Abp.Castle.NLog 添加NuGet包Castle.Core, Castle.Log…
ABP Nuget包 Packages Abp Abp.AspNetCore Abp.Web.Common Abp.Web Abp.Web.Mvc Abp.Web.Api Abp.Web.Api.OData Abp.Web.Resources Abp.Web.SignalR Abp.Owin Abp.EntityFramework.Common Abp.EntityFramework Abp.EntityFramework.GraphDiff Abp.EntityFrameworkCore Ab…
Packages ASP.NET Boilerplate is distributed on nuget. Here, a list of all official packages. Abp Core package. All other packages depends on it. Abp.AspNetCore ASP.NET Core integration package. Abp.Web.Common Common web related classes (Used both by…
日志 服务端 获取记录器 基类日志记录器 配置 Abp.Castle.Log4Net包 客户端 服务端 ABP使用Castle Windsor`s 日志设备.它可以使用不同的日志类库:Log4Net,Nlog,Serilog...等等.Castle提供了所有记录器类库的通用接口.所以,它独立于特定的日志类库,并且如果需要可以很方便的更换它. Log4Net是.NET最流行的日志类库之一.ABP模板已经配置了Log4Net,可直接使用.ABP仅有一行log4net的配置代码(如在配置部分所见),所…
服务器端 ABP使用Castle Windsor的日志设施.它可以使用不同的日志库:Log4Net.NLog.Serilog等等.Castle为所有日志程序库提供了一个公共接口,这样,我们可以独立的使用某个日志库,并且随时可以变成另外的日志库. Log4Net是.NET最流行的日志库之一,ABP模板附带了可以使用的Log4Net,Log4Net依赖项只有一行代码(如配置部分所示),因此可以轻松地将其更改为其他想使用的库. 获取日志记录器 不管你使用哪个日志库,,写日志的代码是一样的(多亏了Cas…
一.基础层搭建 二.PM.Core 三.PM.EntityFramework 四.PM.Application 五.PM.WebApi 六.PM.Web(MPA) 七.PM.Web(SPA) 八.单元测试 一.基础层搭建 1,创建一个空解决方案  2,层结构 PM.Core[v:4.6]:类库 PM.EntityFramework[v:4.6]:类库(引用PM.Core) PM.Application[v:4.6]:类库(引用PM.Core) PM.WebApi[v:4.6]:类库(引用PM.A…
Aspnet Zero使用Windows service (Topshelf)来承载Quartz.net任务 网上有很多关于如何使用Topshelf创建ABP的Quartz windows服务,但很少(没有)有介绍如何配合Aspnet Zero使用的文章,本文记录集成过程,以供参考. 在官方Aspnet Zero模板解决方案中建立Console类型的项目,并安装以下buget package: Topshelf Abp.Quartz Abp.Castle.Log4Net Abp.AspnetCo…
1,在abp官网下载的模板(asp.net+ef)写Application层的时候需要使用AutoMapper.结果ObjectMapper一直为null 解决:需要在当前项目的Module依赖AbpAutoMapperModule 2,Linq Include扩展方法需要引用EntityFramework.dll 3,ToListAsync扩展方法需要引用using Abp.Linq.Extensions; 4,手动搭建abp2.x老是出现System.Collections.Immutabl…
上篇中我们已经可以实现sso,并且为各个服务集成sso认证.本篇处理权限系统的角色问题,权限系统分两层,第一层为整体系统角色权限,区分app用户.后台用户.网站用户的接口权限,第二层为业务系统权限,对业务子系统各个岗位的人划分不同权限. 第一层的角色固化在代码中,如商家app用户,师傅app用户,订单系统用户,接单系统用户等,第二层角色可自定义,和现有系统的角色概念一致.权限系统需要读取其他各个子系统的权限列表(标记在控制器.action上),并在系统权限中定义第一层权限和第二层权限.然后自定义…
本节目录 介绍 分析Abp源码 实现UOW 介绍 UOW(全称UnitOfWork)是指工作单元. 在Abp中,工作单元对于仓储和应用服务方法默认开启.并在一次请求中,共享同一个工作单元. 同时在Abp中,不仅支持同一个数据库连接,还支持事务处理. 分析Abp源码 1.UnitOfWorkRegistrar 2.ComponentRegistered 3.IsConventionalUowClass 4.Intercept 5.PerformSyncUow 实现UOW 定义IUnitOfWork…
一.简要说明 ABP vNext 框架在使用依赖注入服务的时候,是直接使用的微软提供的 Microsoft.Extensions.DependencyInjection 包.这里与原来的 ABP 框架就不一样了,原来的 ABP 框架还需要抽象出来一个 IIocManager 用来管理整个 IoC 容器,现在则直接操作 IServiceCollection 与 IServiceProvider 进行组件的注册/解析. 这里需要注意的是,虽然现在的依赖注入服务是使用微软官方那一套库进行操作,但是 A…
Introduction Any application has at least one language for user interface. Many applications have more than one. ASP.NET Boilerplate provides a flexible localization system for an application. 任何应用程序至少有一种用于用户界面的语言.许多应用程序有多个.ASP.NET样板提供了一种柔性定位系统中的应用.…
VUE+Element 前端是一个纯粹的前端处理,前面介绍了很多都是Vue+Element开发的基础,从本章随笔开始,就需要进入深水区了,需要结合ABP框架使用(如果不知道,请自行补习一下我的随笔:ABP框架使用),ABP框架作为后端,是一个非常不错的技术方向,但是前端再使用Asp.NET 进行开发的话,虽然会快捷一点,不过可能显得有点累赘了,因此BS的前端选项采用Vue+Element来做管理(后续可能会视情况加入Vue+AntDesign),CS前端我已经完成了使用Winform+ABP的模…
给大家安利一款 log4net 的 ASP.NET Core 扩展库,它是基于 log4net 开发的. 简单易用,开源免费,使用ASP.NET Core自身提供的DI容器来实现服务的注册和消费.直接在程序启动时注册到服务中即可完成全部配置,对于小白用户也可快速上手 log4net 日志组件. Lightweight Logging Extension implementation of log4net. Install Package https://www.nuget.org/package…
吐槽Abp Vnext异常处理! 哎呀,是一个喷子 目前项目使用Abp VNext开发,免不了要全局处理异常.提示服务器异常信息. 1. Abp官方异常处理 Abp项目默认会启动内置的异常处理,默认不将异常信息发送到客户端. 在AppModule文件ConfigureServices方法中使用以下代码: Configure<AbpExceptionHandlingOptions>(options => { options.SendExceptionsDetailsToClients =…
Objective-C的hook方案(一):  Method Swizzling 转自:http://blog.csdn.net/yiyaaixuexi/article/details/9374411 在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写.和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结. 本文主要介绍针对selector的hook,主角被标题剧透了———— Method S…
注册多个组件 1.one-by-one注册组件可能是一项非常重复的工作,可以通过Classes或Types注册一组组件(你可以指定一些特定的特征) 三个步骤 注册多个类型通常采取以下结构 container.Register(Classes.FromThisAssembly() .InSameNamespaceAs<RootComponent>() .WithService.DefaultInterfaces() .LifestyleTransient()); 可以看成三个不同的步骤 1)选择…
Magicodes.SwaggerUI 通过配置文件简单配置即可快速完成SwaggerUI的配置,包括: SwaggerUI的文档信息 API分组 API隐藏 API JSON生成(枚举.API架构Id) 验证 自定义页面 支持.NET Core 2.2和3.1.版本日志和使用教程见下文. 注意:AddCustomSwaggerGen和UseCustomSwaggerUI已分别替换为“AddMagicodesSwaggerGen”.“UseMagicodesSwaggerUI”. 更新日志 20…
If you write Web applications in Java, the servlet is your best friend. Whether you write Java ServerPages (JSP) or plain servlets, you are both at the servlet's mercy and the lucky recipient of what the servlet has to offer. So let's look closer at…
有关RunTime的知识点已经看过很久了,但是一直苦于在项目中没有好的机会进行实际运用,俗话说"光说不练假把式",正好最近在项目中碰到一个UITableView和UICollectionView在数据缺省的情况下展示默认缺省页的需求,这个时候RunTime大展拳脚的时候就到了. 大致的实现思路是这样的,因为UITableView和UICollectionView都是继承自系统的UIScrollView,所以为了同时实现UITableView和UICollectionView的缺省页,我…
单例模式是是常用经典十几种设计模式中最简单的..NET中单例模式的实现也有很多种方式.下面我来介绍一下NopCommerce中单例模式实现. 我之前的文章就分析了一下nop中EngineContext的实现.EngineContext是把一个Web请求用Nop的EngineContext引擎上下文封装.里面提供了一个IEngine的单例对象的访问方式. 下面就是EngineContext的源码: 一.EngineContext using System.Configuration; using…