通过系统配置来提高ASP.NET应用程序的稳定性

Linux下ASP.NET Core 6.0性能优化全攻略:从代码到系统配置 以下优化方案需根据实际硬件配置和业务场景调整参数,建议通过持续性能分析(如使用JetBrains dotTrace)进行精准优化,以确保ASP.NET Core 6.0应用在高并发场景下保持良好的响应能力和稳定性。例如,在处理大量数组操作时,使用 ArrayPool 来获取和归还数组,避免频繁的内存分配与回收。例如,在拼接大量字符串时,使用 StringBuilder 来构建字符串,减少内存分配。对于短生命周期和小对象,优先使用值类型(struct),避免使用引用类型(class),以减少垃圾回收压力。 阅读详情
大家都知道,要实现一个 24*7 全天候运行的应用程序并不是一件容易的事。我的一个项目就曾经在暴力负荷下坚持了 20 多个小时后还是壮烈挂掉了。幸运的是, ASP.NET 和 IIS 为我们提供了一些简便的设施,使我们能够轻松构建超级稳定的 .Net 应用程序。不过稍嫌不爽的是, Windows 2000 ( IIS6.0 以下版本) 和 Windows 2003 ( IIS6.0 )系统下的配置方法不尽相同。

 

    先说说windows 2000系统,熟悉ASP.NET的兄台应当都知道 machine.config 这个文件吧,它保存在 %WindowPath%/Microsoft.Net/Framework/%.NetVersion%/CONFIG/ 目录下。随便用什么文本编辑器(当然最土的就属 “记事本” 了)打开该文件,找到 <processModel ...> 这一节。ASP.NET就是根据这一节的设置,来控制ASP.NET服务进程(aspnet_wp.exe 或 w3wp.ext )的。我们的写的ASP.NET 应用程序代码就运行在这个进程空间内。如果你使用的是Framework 1.1 你会在这一节中看到n多个属性,我们关心的是下面三个,等号后面是它们的缺省值:

    
    timeout="Infinite"

    idleTimeout="Infinite"

    memoryLimit="60"

 

    在 Framework 2.0 下你看不到它们,但你可以手工把它们添加进去。

 

    我来翻译一下这三个属性的意思,在持续运行了 timeout 指定的时间后,重启 ASP.NET服务进程,timeout 的缺省值为无穷大,你可以按“HH:MM:SS”的格式重新设置,如,timeout=24:00:00表示24小时后重启; 如果在 idleTimeout 指定的时间内没人的访问,则重启 ASP.NET服务进程,idleTimeout 的缺省值同样为无穷大,设置方式如上;如果ASP.NET服务进程 使用的内存占系统总内存的百分比超过了 memoryLimit 指定的数量,则重启 ASP.NET服务进程。

 

    明白了吧,通过这三个属性的配合,就可以神不知,鬼不觉的重启服务进程,从而使咱的应用程序生生不息的运行下去。我这样说,细心的读者可能已经发现问题了,当服务进程重启时,客户端的会话(Session)必然会丢失,用户的操作也就被中断了。怎么能做到“神不知,鬼不觉”呢?
    
    这个问题确实存在,不过可以通过如下措施将其影响减至最小,甚至完全消除:

 

    首先,我们可以把 idleTimeout 设为一个合理的值,通常我会将其置为会话(Session)超时设置的1.5-3倍。将timeout 置为程序能坚持的上限值,我通常将其置为24小时。这样将迫使服务进程在空闲时重启,由于这时不存在任何会话(Session),所以也就不可能中断用户的操作。这种设置在中小企业办公环境中非常有效,因为下班后基本没有人访问。

 

    当然,上面的方法局限性很大,只能在特定场合起作用。如果在持续有人访问,或者内存超限的情况下重启,用户的操作仍然会受到干扰。一个终极的解决办法就是,将会话(Session)状态保存在独立的进程中。在ASP.Net上,这也可以通过简单的配置实现。

http://louisliu.cnblogs.com/archive/2006/03/07/344342.html

IIS6.0默认的运行模式是进程隔离模式,它通过应用程序池来支持多个ASP.NET服务进程并行运行,前文讲到的machine.config 文件中 <processModel ...> 这一节的大部分设置在这种运行模式下都会被忽略掉,我们前文提到的那三个属性也在其中。不过不用担心,IIS6.0下的配置更加简单直观。 具体步骤如下:  

    1,打开“IIS管理器”

    

    2,在"进程池"文件夹中找到你的ASP.NET应用程序所在的服务进程,右击并选择“属性”项,见下面二图,其它就不用我多废话了吧。

              

        
       

【ESP32-IDF笔记】20-配置以太网网络(W5500) 基于ESP32IDF和官方的ethernet驱动,配置W5500以太网驱动芯片,实现ESP32的有线网络 阅读详情

相关推荐

VS2010“未能正确加载包”问题解决方法小汇

本文按照由简至繁的顺序详述了借助网络获知的四种解法,主要面向重装 VS2010 后遭遇题述问题的网友,相关包尤指 VSTS、RadLangSvc、Language、Bootstrap 及 MicrosoftDataEntityDesign。

虚有其表的博客 1万+

对ASP.NET网站高性能和多并发的设计的讨论

对以下文章内容我要说明下,在财大气粗的互联网公司或为财大气粗的客户服务的不缺钱的主,请立即绕行,以下内容不适合您。 以下内容为客户计算资源紧缺,预算紧缺,无法通过增大带宽,增多服务器,购买各种高级服务的程序员们进行讨论。 谢谢 对于如何提高应用程序的性能(无论是互联网应用还是企业级应用)我的观点一直是考虑一个核心:IO处理。因为我认为目前的CPU的处理能力已经是非常高了,正常编写的在内存中处理...

yaasshole 262

R语言WGCNA实战:从基因表达矩阵到模块可视化全流程(附避坑指南)

本文详细介绍了使用R语言进行WGCNA(加权基因共表达网络分析)的完整实战流程,涵盖从基因表达矩阵预处理、软阈值选择、网络构建与模块识别,到模块与表型关联分析及结果可视化的关键步骤。文章重点解析了代码实现,并提供了针对数据质量检查、参数调整等常见问题的避坑指南,帮助生物信息学研究者高效挖掘基因共表达模块的生物学意义。

weixin_29062823的博客 580

提高.net程序性能和稳定性-CLR Profile

CLR Profile能够看到应用程序的内存堆栈情况并且能够查询垃圾回收机制的行为。利用CLR Profile可以确定你的代码哪儿分配了太多内存,从而导致垃圾回收机制的执行,哪些代码长时间的占有内存。不过CLR Profile不适合在生产环境下使用,因为如果用它,会使你的应用程序的性能下降10倍甚至100倍。 请从http://download.microsoft.com/download/...

云计算? 219

Xlinx PG151 除法器IP 笔记

对Xlinx 除法器IP PG151中部分内容记录备忘。

weixin_50515160的博客 2528

vcs覆盖率相关

选择要查看的覆盖率点,右键选择 show xxx tests;

qq_40571921的博客 2388

通过系统配置来提高ASP.NET应用程序的稳定性(续)

"通过系统配置来提高ASP.NET应用程序的稳定性" 一文讲到了Windows 2000 下( 本质上是在IIS5.0下 ,XP professional 也和2000一样 )的配置方法, 今天我们来看看 Windows 2003 (IIS6.0) 下的配置方法。 IIS6.0默认的运行模式是进程隔离模式,它通过应用程序池来支持多个ASP.NET服务进程并行运行,...

weixin_30389003的博客 137

CGAL-5.6的安装与编译(Win10+vs2022+CGAL-5.6+Boost1.82.0)

CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。CGAL只是一个头文件库(从5.0版本开始),这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。CGAL5.6。

baidu_34931359的博客 3902

通过系统配置来提高ASP.NET应用程序的稳定性(转)

 通过系统配置来提高ASP.NET应用程序的稳定性 大家都知道,要实现一个24*7全天候运行的应用程序并不是一件容易的事。我的一个项目就曾经在暴力负荷下坚持了20多个小时后还是壮烈挂掉了。幸运的是,ASP.NET和IIS为我们提供了一些简便的设施,使我们能够轻松构建超级稳定的.Net应用程序。不过稍嫌不爽的是,Windows 2000(IIS6.0 以下版本) 和 Windows 20

deadshot123的专栏 1249

ORB-SLAM3代码详解 - 第 18 篇 · Atlas 多地图系统、地图保存与全系统调优

会跑:理解三线程架构与数据流(01/08/10/13),能编译、配参、复现各数据集结果。会改:掌握相机模型抽象(05)、g2o 顶点与边(14)、预积分(15),能接入新传感器、新相机、新约束。会调:理解每个参数背后的物理含义与耦合(03/15/16/18),能针对自己的平台与场景做精度/实时/鲁棒的权衡。ORB-SLAM3 的价值不止于一个可用的 SLAM 系统,更在于它是一套工程化的几何状态估计模板:清晰的模块边界、可替换的相机/传感器抽象、紧耦合优化的标准范式。

PX4-SLAM-PNC 171

[QMT量化交易小白入门]-六十九、ETF动量评分策略,历史年化收益率107%

C . bar_date } 跳过') returnC . bar_date } 跳过') returnC . bar_date } 跳过') return作用:如果当前不是回测模式且不是最后一根K线,则记录日志并跳过本次任务。这是为了避免在实时交易中对尚未完成的数据进行处理。

木头大左的博客 2227

通过系统配置来提高ASP.NET应用程序的稳定性(ZZ)

大家都知道,要实现一个24*7全天候运行的应用程序并不是一件容易的事。我的一个项目就曾经在暴力负荷下坚持了20多个小时后还是壮烈挂掉了。幸运的是,ASP.NET和IIS为我们提供了一些简便的设施,使我们能够轻松构建超级稳定的.Net应用程序。不过稍嫌不爽的是,Windows 2000(IIS6.0 以下版本) 和 Windows 2003(IIS6.0)系统下的配置方法不尽相同。    

星云的工作间 792

面向元数据的 SAP UI 中枢:namespace sap.ui.mdc 全景解析

如果把应用前端比作一条数据到交互的装配线,sap.ui.mdc 就是那条线的标准化工装:以 PropertyInfo 描述原料,以 Delegate 定义装配方法,以 p13n 与 VariantManagement 交付面向个体的最终产物;而 Condition Model、Operator 与 ValueHelp 则让输入与筛选的语义落地。与 OData V4 服务与 Fiori Elements 宏构件组合使用时,它能在保持一致体验的同时,给自由式开发者留下足够的可编排空间。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 238

Linux下部署ASP.NET项目

每次说到ASP.NET就会有人说,这是微软的,不开放的,要收钱的,不能在Linux下部署。当然,我想去反驳他,但是我想要指出的是ASP.Net是可以支持Linux,ASP.NET无法构建大规模的项目很大程度也是受限于Windows Server和IIS(其实ASP.NET完成了很多大项目,比如微软所有的网站、MySpace、京东、当当,这些都是访问量巨大的网站,有些都是排民全球前十的)。 好了,吐槽完,我们言归正传,考试讲解在Linux下部署ASP.NET项目。 一、环境介绍 首先,我们来了认识一下L

天际线;世界的尽头;天涯海角 ! 2719

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 上传图片到数据库
下一篇: Asp.Net细节性问题精萃
alys
博客等级 码龄23年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值