ASP.NET Core

ASP.NET Core 监听SQL Server数据库的实时信息

心不动则不痛 提交于 2020-08-17 10:18:49
1.开发环境: 开发工具:Visual Studio 2019 数据库:SQL Server2012 开发环境:.Net Core 3.1 2.使用技术: Signalr:实现消息推送 SqlDependency:通过它的 OnChangeEventHandler 事件去监听数据库的波动【只针对SQL Serer】 Microsoft.EntityFrameworkCore:连接数据库 3.业务逻辑(虽然最后没做成,但是这技术我还学会了) 开发场景: 客户需要每一个参加展会的人,签到时候,需要在展会的大屏幕实时显示签到人的信息。 思考: 如果让以前的我做,一想到就是做AJAX异步请求数据,设置循环间隔时间。但是这样会有问题,第一如果时间设置太长,无法实现实时,如果时间设置太短,会发送很多无效的请求大量占用资源,这个时间就无法去定义。 思路: 此时,我在想,如果要是【有人盯着】数据库,当数据有变化的时候,【有人通知】能通知我们,这样岂不是完美了,敢想就敢干,Just Doing! 4.使用的技术讲解 有人盯着: 通过在百度海洋的搜索,了解到了SqlDependency可以实现这个效果,连接数据库之后,编写查询语句【有注意点,后面讲】,然后使用SqlCommand初始化连接对象和执行的语句,在将SqlDependency初始化填入SqlCommand对象

浅析微软的网关项目 -- ReverseProxy

我的未来我决定 提交于 2020-08-17 08:29:08
浅析微软的网关项目 ReverseProxy Intro 最近微软新开了一个项目 ReverseProxy ,也叫做 YARP(A Reverse Proxy) 官方介绍如下: YARP is a reverse proxy toolkit for building fast proxy servers in .NET using the infrastructure from ASP.NET and .NET. The key differentiator for YARP is that it's been designed to be easily customized and tweaked to match the specific needs of each deployment scenario. 这是一个基于 .net (core) 和 asp.net (core) 的用来代理服务器的反向代理组件,YARP的主要区别在于它的设计易于定制和调整,以适应每种部署方案的特定需求。 你可以基于这个项目来构建自己的 API Gateway 项目 YARP 设计 YARP 主要是基于 endpoint 路由 + asp.net core 中间件来设计实现的 来看一下官方的示例 Startup 配置: public void ConfigureServices

深入探究ASP.NET Core异常处理中间件

谁都会走 提交于 2020-08-17 08:19:34
前言 全局异常处理是我们编程过程中不可或缺的重要环节。有了全局异常处理机制给我们带来了很多便捷,首先我们不用满屏幕处理程序可能出现的异常,其次我们可以对异常进行统一的处理,比如收集异常信息或者返回统一的格式等等。ASP.NET Core为我们提供了两种机制去处理全局异常,一是基于中间件的方式,二是基于Filter过滤器的方式。Filter过滤器的方式相对来说比较简单,就是捕获Action执行过程中出现的异常,然后调用注册的Filter去执行处理异常信息,在这里就不过多介绍这种方式了,接下来我们主要介绍中间件的方式。 异常处理中间件 ASP.NET Core为我们提供了几种不同处理异常方式的中间件分别是UseDeveloperExceptionPage、UseExceptionHandler、UseStatusCodePages、UseStatusCodePagesWithRedirects、UseStatusCodePagesWithReExecute。这几种方式处理的思路是一致的都是通过捕获该管道后续的管道执行过程中出现的异常,只是处理的方式不一样。一般推荐全局异常处理相关中间件写到所有管道的最开始,这样可以捕获到整个执行管道过程中的异常信息。接下来我们介绍一下最常用的三个异常处理中间件UseDeveloperExceptionPage、UseExceptionHandler

记录 asp.net core 一些常见问题

∥☆過路亽.° 提交于 2020-08-17 06:31:39
在 ASP.NET Core 中启用跨域请求(CORS): https://docs.microsoft.com/zh-cn/aspnet/core/security/cors 处理 ASP.NET Core Web API 中的错误: https://docs.microsoft.com/zh-cn/aspnet/core/web-api/handle-errors ASP.NET Core 中间件(调用顺序): https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware 来源: oschina 链接: https://my.oschina.net/u/4299119/blog/4295087

Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)

余生长醉 提交于 2020-08-17 03:52:09
前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.NET Core 实现CI/CD(一 .简介与创建自己的代理池) 觉得有帮助的朋友~可以左上角点个关注,右下角点个推荐 今天我们废话不多说 直接开始正文 正文 昨天我们创建了自己的代理服务器 (其实也可以用Azure提供的免费代理服务器,就是要排队,而且比较慢,限制比较多..) 今天我们来讲讲如何创建自己的持续集成管道. 今天大致的流程图如下: 1. 创建私有Docker Registry 首先我们需要到自己需要持续集成的服务器上 安装Docker Registry来获取我们的docker image 安装Docker..我这就不说了.主要讲讲如何安装Docker Registry 直接拉取registry镜像: docker pull registry 查看是否存在镜像: 拉取到镜像后,我们直接Run 命令: docker run -itd -v /data/registry:/var/lib/registry -p 8082:5000 --restart=always --name registry registry:latest 这里的8082是你映射外网的端口.

在ASP.NET Core中创建自定义端点可视化图

旧时模样 提交于 2020-08-17 00:52:46
在 上篇文章中 ,我为构建自定义端点可视化图奠定了基础,正如我 在第一篇文章中 展示的那样。该图显示了端点路由的不同部分:文字值,参数,动词约束和产生结果的端点: 在本文中,我将展示如何通过创建一个自定义的 DfaGraphWriter 来为自己的应用程序创建一个端点图。 这篇文章使用了本系列前几篇文章中的技巧和类,因此我强烈建议在继续之前先阅读这些技巧和类。 作者:依乐祝 原文链接: https://andrewlock.net/creating-a-custom-endpoint-visualization-graph/ 译文: https://www.cnblogs.com/yilezhu/p/13380120.html 为端点图添加配置 我们首先要看的是如何配置最终端点图的外观。我们将为两种类型的节点和四种类型的边缘添加配置。边是: 文字边缘:路线部分,例如 api 和 values 中的文字匹配 api/values/{id} 。 参数边缘:路线的参数化部分,例如 {id} route中 api/values/{id} 。 捕获所有边:与“全部捕获”路由参数相对应的边,例如 {**slug} 。 策略边缘:与URL以外的其他约束相对应的边缘。例如,图中的基于HTTP谓词的边 HTTP: GET 。 节点是: 匹配节点:与端点匹配关联的节点,因此将生成响应。 默认节点: 不

asp dotnet core 从零开始创建一个 WebApi 服务

邮差的信 提交于 2020-08-16 23:50:54
本文将从最简单开始,新从全控制台开始创建一个 WebApi 服务,然后再使用 VisualStudio 创建服务 从 官网 https://dotnet.microsoft.com/ 下载和安装最新版本的 dotnet 工具,这个 dotnet 工具还请安装 SDK 版本 安装完成之后,打开一个 cmd 控制台,输入 dotnet --info 确定安装成功 如看到有输出信息说版本是多少,那么就是安装成功了 接下来输入下面命令创建一个 WebApi 项目。此时如果 VisualStudio 还没有安装或更新到 VisualStudio 最新版本,那么请此时点击安装,大概控制台玩过之后差不多 VisualStudio 也安装差不多了 dotnet new webapi -o FarbenergarWacerabe 这里的 FarbenergarWacerabe 就是要创建的项目名,可以随意命名,但是推荐不要太诡异,如果发现创建失败了,自然就知道哪些命名不能作为项目名 通过 cd 命令进入到刚才创建的项目里面 cd FarbenergarWacerabe 然后将创建出来的项目先开跑 dotnet run 恭喜,现在一个 WebApi 服务就创建完成了。安装 ctrl+c 就可以结束这个 WebApi 服务了,首次运行需要还原下载 NuGet 库可能会需要一点时间。现在空白的

ASP.net Core MVC项目给js文件添加版本号

跟風遠走 提交于 2020-08-16 19:04:56
需求: 使用ASP.net Core Mvc开发公司内部web系统,给视图中js(css,image也可以)文件添加版本号避免缓存问题。 解决方法: 利用 Taghelper 提供的标签(asp-append-version)可以实现 <script src="~/Scripts/Biz/VillageResource/XXXX.js" asp-append-version="true"></script> 效果: 备注:刷新页面js版本号不会变化,直到变动js内容变化,版本号才会变化。 下文根据源码,了解asp-append-version是如何实现的。 if (AppendVersion == true) { EnsureFileVersionProvider(); if (Href != null) { var index = output.Attributes.IndexOfName(HrefAttributeName); var existingAttribute = output.Attributes[index]; output.Attributes[index] = new TagHelperAttribute( existingAttribute.Name, FileVersionProvider.AddFileVersionToPath(ViewContext

不用虚机不用Docker使用Azure应用服务部署ASP.NET Core程序

守給你的承諾、 提交于 2020-08-16 19:04:40
一般我们写好了应用程序想要部署发布它,要么发布到物理机,要么发布到虚拟机,要么发布到容器来运行它。现在有了Azure应用服务,我们可以完全不用管这些东西,只管写好自己的代码,然后使用VisualStudio的发布功能就可以一键部署了。如果你觉得性能不够用了还可以自动扩容,弹性伸缩。 应用服务概述 Azure 应用服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端 。可以使用 .NET、NET Core、Java、Ruby、Node.js、PHP 或 Python 等偏好的语言进行开发。应用服务不仅可将 Microsoft Azure 的强大功能(例如安全性、负载均衡、自动缩放和自动管理)添加到应用程序。还可以利用其 DevOps 功能,例如包管理、过渡环境、自定义域和 SSL 证书。 引用自微软Azure文档 创建应用服务资源 通过portal控制台创建一个新的应用服务资源。 取个名字,这个名字会分配一个二级域名,到时候可以通过它来访问你的应用程序。选择对于的运行时,操作系统,区域。应用服务对于12月免费账号也是一个免费服务,支持1G内存60分钟CPU时间/天10个实例。 注意:SKU和大小,这里默认是要收费的,需要改成对应的免费计划。 点击“更改大小”,选择开发/测试标签,选择F1定价计划,这个才是免费的。 这些设置完成后点击创建

Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(四)

点点圈 提交于 2020-08-16 17:28:58
在上一讲中,我们已经完成了一个完整的案例,在这个案例中,我们可以通过Angular单页面应用(SPA)进行登录,然后通过后端的Ocelot API网关整合IdentityServer4完成身份认证。在本讲中,我们会讨论在当前这种架构的应用程序中,如何完成用户授权。 回顾 《 Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(一) 》 《 Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(二) 》 《 Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(三) 》 用户授权简介 在继续分析我们的应用程序之前,我们简单回顾一下用户授权。在用户登录的过程中,系统首先确定当前试图登录的用户是否为合法用户,也就是该用户是否被允许访问应用程序,在这个过程中,登录流程并不负责检查用户对哪些资源具有访问权限,反正系统中存在用户的合法记录,就认证通过。接下来,该用户账户就需要访问系统中的各个功能模块,并查看或者修改系统中的业务数据,此时,授权机制就会发挥作用,以便检查当前登录用户是否被允许访问某些功能模块或者某些数据,以及该用户对这些数据是否具有读写权限。这种决定用户是否被允许以某种方式访问系统中的某些资源的机制,称为授权。 最常见的授权可以基于用户组