Skip to main content

如何优化运行在Windows Server和IIS上的Web应用

分类:  Windows Server 标签:  #Azure #基础 #Virtual Host #.Net #Windows #Web 发布于: 2023-06-15 19:55:35

近期将原来运行在Azure Linux虚拟机上的博客迁到了基于Azure Windows Server的环境上,发现运行速度大大提升。感慨下,原来之前开源社区忽悠了我这么多年,什么Linux的性能比Windows好哦。之前说啥什么Linux比Windows安全这个我是一直不信的,因为我是遭受过Linux被入侵的毒打事件的,说Linux安全的人估计从来没有遭受过Linux系统被入侵的毒打,这之后我去恶补了很多安全相关的知识,才发现对于Linux不了解,不熟悉的人使用Linux几乎和裸奔没有区别,但是Windows就不一样,作为商业系统,特别是服务器版,开箱即用,只要遵守微软的最佳实践,保持更新,基本不太会遇到大的安全事故。所以说Linux比Windows安全我就从来没有信过。但是我是一直相信L

Read more

使用Azure虚拟机创建一个功能完备的网站 - 配置安全规则

分类:  Windows Server 标签:  #Azure #基础 #Windows #.Net #Web 发布于: 2023-06-15 19:35:23

我们之前通过一些类的配置,已经完成了创建Azure资源,配置Windows Server 2019 Datacenter作为一个Web服务器,添加了自定义的用户,并给用户分配了权限,设置了网站目录的权限,同时我们在服务器上启用了远程管理和远程通过Web Deploy进行发布的组件,这一切都看起来很美好,我们已经可以开始进行开发,测试和部署了。 但是等一等,我们清单上是不是还有没有完成的事项? 检查一下清单吧: 安装Web角色和服务 安装Asp.net Core Module 配置用户 创建我们的站点 启动IIS的远程管理 安装Web Deploy 配置Windows Server上的防火墙 配置Azure Virtual Network Security Gr

Read more

使用Azure虚拟机创建一个功能完备的网站 - 配置远程管理

分类:  Windows Server 标签:  #Azure #基础 #.Net #Web # 发布于: 2023-06-15 16:32:31

我们之前已经创建了虚拟机资源,配置了用户,新建了站点,接下来我们配置站点的远程管理和远程发布。 先回顾一下我们的目的: 安装Web角色和服务 安装Asp.net Core Module 配置用户 创建我们的站点 启动IIS的远程管理 安装Web Deploy 配置Windows Server上的防火墙 配置Azure Virtual Network Security Group 测试远程管理 测试通过MSBuild和Visual Studio远程更新和发布站点 我们本篇文章是接之前的步骤来的,如果之前的步骤您不太了解,您可以回顾一下,文章末尾有连接。 今天我们还是先使用远程管理终端连接上我们的服务器,连接上后,依次从服务器管理器中找到IIS,然后启动II

Read more

使用Azure虚拟机创建一个功能完备的网站 - 创建Azure资源

分类:  .Net技术 标签:  #Azure #.Net #Virtual Host #Web 发布于: 2023-06-15 16:00:44

我们前一篇讨论我们的工具的选择,这篇开始我们就开始开工了,我们先来创建Azure的资源,为了契合我们使用Azure的理念,使云管理人员也参与到整个系统的架构中来, 我们使用脚本工具来帮助管理员创建基于Azure的资源,这样可以将创建和管理资源的脚本使用github管理起来,方便未来可以快速部署和快速扩充的需要。 先来看一下我们目标: 在本地创建脚本运行环境,并记录成文档。 使用脚本创建虚拟机,并设定虚拟机的公网地址为静态地址,方便网站域名的绑定。 使用脚本配置Network Security Group用来放行我们需要的端口。 使用脚本创建Azure Stoarge账户和一个用于备份的blob。 使用脚本创建Azure Cognitive Service资源,并保留创建的

Read more

静态文件支持

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:43:38

静态文件主要是指在ASP.net Core项目种的包括js, css, html, 图片等等资产。ASP.net Core会直接向客户端返回这些资产。 使用静态文件中间件 静态文件默认是存储在web root目录,这个目录默认是在{contentroot}/wwwroot里,但是也可以使用扩展方法UseWebRoot来进行改变。在ASP.net Core的模板里是使用方法CreateDefaultBuilder来设置Content root和web root的。 默认的web root的布局是: wwwroot css js lib 启用中间件 直接从模板里可以看到:

Read more

Make HTTP Request

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:41:42

Asp.net Core提供将IHttpClientFactory实例注册为服务,为用户创建和配置HttpClient, IHttpClientFactory提供如下的优势: 提供一个控制中心,用于创建命名或者类型HttpClient。 利用Delegate handler为HttpClient创建中间件。并提供基于Polly的扩展方法,为httpclient提供重试,错误处理等功能。 将HttpClientMessageHandler进行池化,并管理其生命周期。 为所有通过client的请求提供可配置的日志功能。 基本的使用形式 IHttpClientFactory有如下几种使用形式: 基本使用方法 命名客户端 强类型客户端 泛型客户端

Read more

错误处理

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:39:26

本节我们来学习错误的处理。 Developer Exception Page 在开发的阶段打开UseDeveloperExceptionPage()中间件。 例如: public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); }

Read more

路由

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:37:05

关于路由这个部分,我想有几个技术要点是需要先理解清楚的,否则的话,可能很多新手同学对于理解Asp.net Core 3.0之后的以中间件: UseRouting和UseEndpoint这个两个概念可能会非常混淆,可能非常不明白为什么既然有了路由的中间件,为什么还需要Endpoint这样一个中间件。 先说为什么?我理解最主要的就是为了解耦,将路由匹配,路径选择这些功能和选择好路由之后实际执行完全分开,也就是如果你愿意,你完全可以自己重新定义路由组件,但是不影响Endpoint中间件的执行。 另外要理解的是我们在Startup的Configure方法中执行的扩展方法,都是在注册将来要在一个request里执行的委托,也就是在该方法里前后执行的顺序并不影响将来在request里执行的顺

Read more