ASP.NET Core

ASP.NET Core MVC 网站学习笔记

泄露秘密 提交于 2020-04-20 03:53:27
ASP.NET Core MVC 网站学习笔记 魏刘宏 2020 年 2 月 17 日 最近因为” 新冠” 疫情在家办公,学习了 ASP.NET Core MVC 网站的一些知识,记录如下。 一、新建项目及基本结构 我们要新建的是 “ ASP.NET Core Web 应用程序” 类型的项目: 起名之后选择 .NET Core 分类下的 “ Web 应用程序 (模型视图控制器)” 模板,也就是 MVC 类型的模板,然后创建即可: 创建后结构如下图: wwwroot 存放网站的 js、css 等前端文件,Models 存放模型类,Views 存放视图文件,Controllers 存放控制器; appsettings.json 用于配置,比如可以在其中加入数据库连接字符串: Programs 是程序入口,实际的启动工作通过 Startup 来进行。 二、实体模型和 EF 框架 我们可以在 Models 文件夹下添加实体类,并给字段添加一些特性: using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; // 存放实体类 Entity namespace EasyBlog.Models { /// <summary> /// 用户表 /// </summary>

ASP.NET Core 应用(SignalR)发布到 IIS 报错(HTTP Error 500.19

一世执手 提交于 2020-04-20 02:14:12
参考资料:    ASP.NET Core SignalR 入门    将 ASP.NET Core 应用发布到 IIS Download .NET Core 报错信息: HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid. 解决方法:   去 Download .NET Core 网站下载对应你开发环境的ASP.NET Core版本的 Run apps - Runtime ,然后对应你自己的开发平台(Windows/Linux/Mac)的最新版本。 我的对应的版本是: ASP.NET Core Runtime 2.2.8 下载之后,到你的运行环境(也就是服务器环境)安装这个运行时。 然后按照 安装 .NET Core 托管捆绑包 里面的步骤2里面的方法操作,选择其中一种即可。   重启   在命令行界面中执行 net stop was /y,后跟 net start w3svc 来源: oschina 链接: https://my.oschina.net/u/4274857/blog/3274739

ASP.NET Core中配置监听URLs的五种方式

吃可爱长大的小学妹 提交于 2020-04-19 22:20:57
原文: 5 ways to set the URLs for an ASP.NET Core app 作者: Andrew Lock 译者: Lamond Lu 默认情况下,ASP. NET Core应用会监听一下2个Url: http://localhost:5000 https://localhost:5001 在本篇博文中,我将展示如何使用五种不同的方式改变应用监听的URLs。 在ASP.NET Core项目启动时,有多种配置监听Url的方式,在我之前的一篇博客中,已经展示了在ASP.NET Core 1.0中如何应用不同的方式配置,在ASP.NET Core 3.x中,大部分方式还是一样的。 UseUrls() - 在Program.cs配置程序监听的URLs 环境变量 - 使用 DOTNET_URLS 或者 ASPNETCORE_URLS 配置URLs 命令行参数 - 当使用命令行启动应用时,使用 --urls 参数指定URLs 使用 launchSettings.json - 使用 applicationUrl 属性来配置URLs KestrelServerOptions.Listen() - 使用 Listen() 方法手动配置 Kestral 服务器监听的地址 下面我来详细说明一下每个一种方式。 哪些Url可以使用? 在本篇我描述是你可以绑定的"URLs",

.NET Core技术研究-主机

一笑奈何 提交于 2020-04-19 21:57:22
前一段时间,和大家分享了 ASP.NET Core技术研究-探秘Host主机启动过程 但是没有深入说明主机的设计。今天整理了一下主机的一些知识,结合先前的博文,完整地介绍一下.NET Core的主机的设计和构建启动过程。 一、什么是主机 主机是一个封装了应用资源的对象,即:主机封装了一堆应用资源,封装了哪些应用资源呢? 依赖注入框架 DI Logging日志 Configuration 配置 托管服务:IHostedService服务接口的实现 二、Web主机和通用主机 先说 Web主机 :即ASP.NET Core Web主机,概括的讲就是 托管Web程序的Host 。在低于 3.0 的 ASP.NET Core 版本中, Web 主机用于 HTTP 工作负载 。 我们新建一个ASP.NET Core2.2的Web应用程序,在Program类的Main函数中我们可以看到整个WebHost的构造、启动过程: .NET Core提供Web主机的同时,还提供了一个通用主机的概念。 通用主机Host和Web主机提供了类似的架构和功能,包含依赖注入框架DI、日志、配置、各类应用(托管服务)。通用主机的出现,给了我们更多开发的选择,比如说后台处理任务场景。 在.NET Core3.1版本后,微软不再建议将 Web 主机用于 Web 应用,直接使用Host通用主机来替换WebHost, 一句话

ASP.NET Core MVC入门——3

♀尐吖头ヾ 提交于 2020-04-19 21:19:42
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-3.1&tabs=visual-studio 这一章节中,我们开始认识一下MVC中的M,也就是Model。 Entity Framework Core是微软提供给开发者的一个ORM框架,类似java中的MyBatis和Hibernate。将Plain Old CLR Objects(POCO)类可以直接转换为数据库中的增删改查的操作代码,减少重复开发代码量。 POCO 这种类是只有属性没有方法的类,纯粹表示数据,可以用于和数据库之间的映射。 EF Core库只要求我们写POCO类,然后该库就可以根据这些类自动在数据库中建立对应的表,以及相关的增删改查。 新建model Movie.cs using System; using System.ComponentModel.DataAnnotations; namespace MvcMovie.Models { public class Movie { public int Id { get; set; } public string Title { get; set; } [DataType(DataType.Date)] public

.NET Core技术研究-主机

笑着哭i 提交于 2020-04-19 18:00:48
前一段时间,和大家分享了 ASP.NET Core技术研究-探秘Host主机启动过程 但是没有深入说明主机的设计。今天整理了一下主机的一些知识,结合先前的博文,完整地介绍一下.NET Core的主机的设计和构建启动过程。 一、什么是主机 主机是一个封装了应用资源的对象,即:主机封装了一堆应用资源,封装了哪些应用资源呢? 依赖注入框架 DI Logging日志 Configuration 配置 托管服务:IHostedService服务接口的实现 二、Web主机和通用主机 先说 Web主机 :即ASP.NET Core Web主机,概括的讲就是 托管Web程序的Host 。在低于 3.0 的 ASP.NET Core 版本中, Web 主机用于 HTTP 工作负载 。 我们新建一个ASP.NET Core2.2的Web应用程序,在Program类的Main函数中我们可以看到整个WebHost的构造、启动过程: .NET Core提供Web主机的同时,还提供了一个通用主机的概念。 通用主机Host和Web主机提供了类似的架构和功能,包含依赖注入框架DI、日志、配置、各类应用(托管服务)。通用主机的出现,给了我们更多开发的选择,比如说后台处理任务场景。 在.NET Core3.1版本后,微软不再建议将 Web 主机用于 Web 应用,直接使用Host通用主机来替换WebHost, 一句话

一个新实验:使用gRPC-Web从浏览器调用.NET gRPC服务

泄露秘密 提交于 2020-04-19 17:17:22
今天给大家翻译一篇由ASP.NET首席开发工程师 James Newton-King 前几天发表的一篇博客,文中带来了一个实验性的产品gRPC-Web。大家可以点击文末的讨论帖进行相关反馈。我会在文章末尾给出原文链接。全部译文如下: 我很高兴宣布通过.NET对gRPC-Web进行实验性支持。gRPC-Web允许从基于浏览器的应用程序(例如JavaScript SPA或Blazor WebAssembly应用程序)调用gRPC。 .NET的gRPC-Web承诺将gRPC的许多出色功能引入浏览器应用程序: 强类型代码生成的客户端 紧凑的Protobuf消息 服务流 什么是gRPC-Web 无法在浏览器中实现gRPC HTTP / 2规范,因为没有浏览器API能够对HTTP请求进行足够的细粒度控制。 gRPC-Web 通过与HTTP / 1.1和HTTP / 2进行兼容来解决此问题。 gRPC-Web不是一项新技术。已经有一个稳定的 gRPC-Web JavaScript客户端 ,以及一个 用于在gRPC和gRPC-Web之间进行转换的代理 。新的实验性程序包允许ASP.NET Core gRPC应用程序支持 不 带代理的gRPC-Web ,并允许.NET Core gRPC客户端调用gRPC-Web服务。(非常适合Blazor WebAssembly应用!) 使用gRPC

asp.net core 3.x 身份验证-3cookie身份验证原理

隐身守侯 提交于 2020-04-19 17:11:34
概述 上两篇( asp.net core 3.x 身份验证-1涉及到的概念 、 asp.net core 3.x 身份验证-2启动阶段的配置 )介绍了身份验证相关概念以及启动阶段的配置,本篇以cookie身份验证为例来大致说明asp.net core中的身份验证原理。 如果我们的应用只考虑浏览器使用,且不考虑前后端分离,cookie是最简单的身份验证方式。虽然这样命名,但我们的用户标识并非一定要存到cookie里,asp.net core允许我们存储到任何地方,如:session、自定义基于内存的存储、redis等等。身份验证与asp.net core Identity结合会更简单,它提供了用户管理功能,以及更身份验证相关的辅助类,如:SignManager,不过暂时不将这东东。 还是以宏观上的理解和使用为主 。主要涉及如下流程: 未登录时请求受保护的资源 登录 已登录时访问受保护的资源 注销 其中步骤1、3差别很小。总体流程大致如下图: 先在Startup中做如下配置: 1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.AddAuthentication().AddCookie(); 4 services.AddControllersWithViews(); 5 } 6 7 //

ASP.NET Core中配置监听URLs的五种方式

你离开我真会死。 提交于 2020-04-19 15:05:01
原文: 5 ways to set the URLs for an ASP.NET Core app 作者: Andrew Lock 译者: Lamond Lu 默认情况下,ASP. NET Core应用会监听一下2个Url: http://localhost:5000 https://localhost:5001 在本篇博文中,我将展示如何使用五种不同的方式改变应用监听的URLs。 在ASP.NET Core项目启动时,有多种配置监听Url的方式,在我之前的一篇博客中,已经展示了在ASP.NET Core 1.0中如何应用不同的方式配置,在ASP.NET Core 3.x中,大部分方式还是一样的。 UseUrls() - 在Program.cs配置程序监听的URLs 环境变量 - 使用 DOTNET_URLS 或者 ASPNETCORE_URLS 配置URLs 命令行参数 - 当使用命令行启动应用时,使用 --urls 参数指定URLs 使用 launchSettings.json - 使用 applicationUrl 属性来配置URLs KestrelServerOptions.Listen() - 使用 Listen() 方法手动配置 Kestral 服务器监听的地址 下面我来详细说明一下每个一种方式。 哪些Url可以使用? 在本篇我描述是你可以绑定的"URLs",

ASP.NET Core MVC入门——1

删除回忆录丶 提交于 2020-04-19 11:36:34
根据微软的文档,学习了ASP.NET core MVC的基础使用。 https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-3.1&tabs=visual-studio 有如下感受: 如果时间相对充裕,最好看英文文档。英文中的冗余信息较多,容易理解。 微软的工具化如果一旦使用了,会发现很方便,开发速度真的很快。相比以前java的ssm,快不少。 整个入门笔记整理如下 基础 使用的是vs2017,.net core是2.1,这就是基本开发环境,其他啥都没有。 通过vs2017新建“ASP.NET Core Web 应用程序”项目,名称为MvcMovie。新建完成后,就可以通过运行启动一个最基础的asp.net网站了。如果只是静态页面显示,可以在项目目录wwwroot目录下面,添加各种html文件,已经是一个静态网站了。 MVC MVC入门,MVC是一个开发动态网站的框架思维,并不是一种特定的代码,asp.net中可以实现,jsp中也可以实现,其他各种编程技术中都有实现。asp.net mvc框架以及配套的工具的已经大大简化了开发人员的使用方式。如果不使用这些工具,则开发一个交互式有数据库的网站,大概步骤是如下 建立业务的数据模型 建立控制器