app教程网 学习教程 IIS 6.0优化与asp.net的web.config配置优化

IIS 6.0优化与asp.net的web.config配置优化

本文将和大家分享一些ASP.NET的IIS优化和web.config的配置优化。

IIS相关优化

1.修改IIS工作进程的最大数量。

A.请考虑以下几点:

1.每个工作进程都会消耗系统资源和CPU占用率;工作进程过多会导致系统资源和CPU利用率的急剧消耗;

2.每个工作进程都有自己的状态数据。如果Web应用程序依赖工作进程来保存状态数据,它可能不支持使用多个工作进程。

3.资源竞争,让多个工作进程运行同一个应用会造成资源竞争。

b、修改ISS中工作进程的最大数量,提高应用池处理请求的性能。

1.在IIS 6.0的Web Garden中,为应用程序池指定工作进程的数量可以提高应用程序池处理请求的性能。当服务器的负载很小并且不需要额外的工作过程时,

IIS 6.0在一定时间后(默认20分钟,可配置)自动减少实际工作进程数;如果负载变大并且需要额外的工作进程,IIS 6.0会再次增加工作进程的数量。所有这些都是自动完成的,不需要管理员的干预。

2.修改方法如下:

修改服务器的machine.config的配置。net框架。

目录:C:\WINDOWS\Microsoft .NET \ framework 64 \ v 2。0 .50727 \配置\机器。配置

Set the "Allow Definition" value of the "Process Model" node to "Everywhere"

修改服务器中iis工作进程的最大数量:

方法:右键单击iis应用程序池-属性-性能选项卡-web Garden-最大工作进程数。

注意:经过测试验证,当服务器有32(16*2)个内核的32G内存时,设置为5为最佳性能。

(PS:processModel元素(ASP.NET设置架构)元素为服务器配置处理模型,包括服务器上的所有ASP.NET应用程序。因此,

processModel设置只能放在Machine.config文件中,不能被Web.config文件中的任何设置重写。)

2.取消IIS的web访问记录。

A.关闭IIS访问记录可以提高web性能。

1.默认情况下,IIS6.0打开网站的IIS访问记录。当开启日志功能时,IIS会如实详细记录所有IIS访问记录。这些记录文件的内容非常复杂,

例如访问时间、客户端IP、从哪个链接访问、Cookies等。此外还有Method、UserAgent等。

这些记录不仅会占用大量的磁盘空间,还会极大地影响web服务器的性能。据评估,停止IIS访问记录可以提高web性能5%到8%。

2.方法:打开IIS管理器,找到特定的网站,右键单击并选择属性,取消选中“主目录”选项卡下的“记录访问”。

Web.config配置优化(生产环境)

1.删除无用的http模块

D.并非所有的模块都是必要的,移除未使用的HttpModules可以提高请求速度。

1.asp.net的默认HttpModules管理请求的管道并控制每个请求。

例如,SessionStateModule拦截每个请求并分析会话cookie,以在HttpContext中加载适当的会话。但并不是所有的模块都是必要的。

比如不使用成员资格,就不需要配置FormsAuthentication模块;如果不使用windows身份验证,则不需要配置Windows身份验证。

这些模块只包含在管道中,为每个请求执行一些不必要的代码。

2.默认模块在machine.config中定义(在网站的web.config中设置表示当前网站有效)($ Windows $ \ Microsoft。NET \ Framework \ $ version $ \ config)。

提高请求速度-remove name='输出缓存'/remove name='会话'/remove name=' windows身份验证'/remove name='窗体身份验证'/remove name=' PassportAuthentication '/remove name='角色管理器'/remove name=' URL授权'/remove name='文件授权'/remove name='匿名标识'/remove name=' Profile '/http模块2 .关闭页面级无用机制

Web.config中的pages节点配置全局定义特定于页的设置,例如配置文件范围内的页和控件的ASP.NET指令。默认的enableViewState属性为“true”,即视图已打开。

如果不使用这个机制,可以设置为“false”。

默认的autoEventWireup属性为“true”,也就是说,如果不使用此机制,打开页面事件可以设置为“false”。

默认的buffer属性为“true”,即打开HTTP响应缓冲。默认情况下,enableViewStateMac的属性为“false”,并为页面的视图状态打开计算机身份验证检查(Mac)以防止用户篡改。

如果设置为true,将导致性能下降。默认validateRequest默认为真,用户输入中存在跨站点脚本攻击和SQL注入漏洞攻击。

如果匹配,将抛出一个HttpRequestValidationException异常。

3.将CustomError设置为非关闭状态。

Web.config中的customErrors节点用于定义一些自定义错误信息。这个节点有两个属性:Mode和defaultRedirect,其中defaultRedirect是可选属性。

表示发生应用程序错误时重定向到的默认URL。如果未指定此属性,将显示一般错误。Mode属性是必需的属性,它有三个可能的值。

它们所代表的含义如下:Mode意味着On意味着本地和远程用户都将看到自定义的错误消息。Off禁用自定义错误消息,本地和远程用户都将看到详细的错误消息。

RemoteOnly意味着本地用户将看到详细的错误信息,而远程用户将看到自定义的错误信息。这里有必要解释一下本地用户和远程用户的概念。

当我们用来访问ASP.NET应用程序的机器和我们用来发布ASP.NET应用程序的机器是同一台机器时,我们就成了本地用户,反之亦然。在开发调试阶段,建议将Mode属性设置为Off,以便于发现错误。

在部署阶段,应该将Mode属性设置为On或RemoteOnly,以避免这些详细的错误消息暴露程序代码的细节,导致黑客入侵。

配置如下:

customErrors mode=' On ' default redirect='错误。html '/4 .禁用调试

Web.config中的编译节点配置ASP.NET使用的所有编译设置。默认调试属性为“真”,即允许调试,这在开发阶段是没有问题的。但正式部署后,

这会影响支持接口的性能,所以在程序编译上线后要设置为“false”。

配置如下:

compilation debug='false' /5. 连接并发配置

连接并发数限制是指对于同一个ip对同一个domain发起的最大连接数。其实在大多数微软的产品或组件中都存在这个限制,一般这个数值是2/4个,也就是说在默认情况下,

对于同一个ip访问同一个domain同时最多有2个连接处于建立状态。默认是2,这个值太低了。这意味着每一个IP最多只能有两个请求到你的网站,这样会造成请求拥堵。

asp.net中connectionManagement节点可以设置单个ip对同某个domain发起的最大连接数。

配置如下:

system.net connectionManagement add address='*' maxconnection='100'//connectionManagement /system.netaddress代表针对哪个domain,

6. 去掉http头信息中的ASP.NET 版本标头

enableVersonHeader:指定ASP.NET 是否应输出版本标头。使用该属性来确定当前使用的ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用。

配置示例:

httpRuntime enableVersionHeader='false' /

本文来自网络,不代表本站立场,转载请注明出处:https: