ASP.NET 管理网站(应用程序池、应用程序预热、扩展集成管道)

摘要:
应用程序池可以对相似或相关的应用程序进行分组,以简化配置和管理。对于将应用程序分配到应用程序池,没有硬性或快速的规则。IIS7自动创建多个应用程序池。您可以通过IIS管理器查看和管理应用程序池:名称:创建应用程序池后,无法对其进行修改。默认情况下应使用集成管道模式。

应用程序池可以对相似或相关的应用程序分组,简化配置和管理。同样地,被分配到不同应用程序池的应用程序相互独立,这样,某个应用程序池中的问题不会影响到其他应用程序池中的应用。

没有把应用程序分配到应用程序池的硬性或快速规则。你可以因为它们具有相似的性能指标、或同属一个部门、或其他任何对环境有意义的原因而进行分组。其中,最有用的功能是让不同的应用程序池使用不同版本的 .NET Framework

IIS 7 自动创建几个应用程序池,通过 IIS 管理器可以查看并管理应用程序池:

image

  • 名称:应用程序池创建后就不能再修改。
  • 状态:显示应用程序池是否在运行,即该应用程序池中的应用程序的请求是否被响应。
  • 托管管道模式:IIS 7 支持集成和经典两种模式。
  • 标识:运行应用程序池中应用程序的 Windows 帐号
  • 应用程序:分配到应用程序池中的应用程序数量。

1. 创建新应用程序池

通过 IIS 管理器右侧的“添加应用程序池”创建自定义的应用程序池,可输入名称,选择模式(经典模式是为了兼容旧应用程序)。

image

2. 把应用程序分配到应用程序池

在 IIS 管理器中选择应用程序,单击右侧“操作”里的“基本设置”,可选择该应用程序被分配的应用程序池:

image

3. 启动和停止应用程序池

启动和停止对应了应用程序的请求是否被响应。“回收”操作重置应用程序池,对于处理那些逐步产生的难于诊断的问题非常有用。

4. 并行执行

应用程序池可以让你在同一台服务器上运行不同版本的 ASP.NET 应用程序。如果要修改使用 VS 项目创建的网站的 .NET 版本,需要修改项目的设置并重新部署,否则会在请求网站时看到配置错误

使用应用程序预热

处理第一次请求并返回到浏览器会花费较长时间,但后续的请求就快多了。这是因为 IIS 7 对你部署的文件不做任何处理,直到第一次请求发生为止。此时,IIS 准备应用程序;网站的代码部分被编译;数据库连接被创建;数据被加载等。这会花不少时间,也正因此第一次请求是如此之慢。如果重新启动 IIS,这个过程会再次执行。

对于大型和复杂的应用程序,响应初始请求所需的时间可能非常长。应用程序预热功能是 IIS 7.5 开始新增的。对于每个配置使用预热功能的应用程序,IIS 7 在启动时执行了一组请求(由你指定),即真正用户的第一次请求到达时,所有准备工作早已经就绪了

即使不准备使用应用程序预热,也可以使用 aspnet_compiler.exe 命令行工具执行预编译以提升应用程序的初始性能

1. 准备 IIS 7

使用 WebPI 平台再次下载“用于 IIS 7.5 的应用程序预热”,安装完成后刷新或重启 IIS 管理器。

2. 配置应用程序预热

双击新安装的“应用程序预热”新图标,对话框进行简单的设置即可。

扩展集成管道

IIS 7 支持两种处理请求的模型。第一种是称作“经典”,它是之前版本支持的模型,现在出于兼容旧应用程序的需要仍被支持。第二种成为“集成”,它提供更好的性能以及一个通过 IHttpHandler 接口扩展 IIS 7 的不同模型。默认应该使用集成管道模式

1. 创建处理程序

新建类库项目 SimpleHandler,添加下面这个类,实现 IHttpHandler 接口,并生成 DLL 文件:

using System;
using System.Web;
namespace SimpleHandler
{
    class SimpleHandler : IHttpHandler
    {
        #region IHttpHandler 成员
        public bool IsReusable
        {
            get { return true; }
        }
        public void ProcessRequest(HttpContext context)
        {
            HttpResponse response = context.Response;
            response.Write("<html><body><h1>Rendered by the SimpleHandler");
            response.Write("</h1></body></html>");
        }
        #endregion
    }
}

2. 部署应用程序

将此 DLL 文件复制到服务器,放到应用程序根的 bin 目录里。如果 bin 目录不存在,则创建它。我们以系列文章之前部署的 FileCopy 应用程序为例:

image

3. 配置处理程序

使用 IIS 管理器,选择要修改的应用程序(此处是 FileCopy 应用程序),双击“处理程序映射”图标打开“处理程序映射”界面:

image

image

单击窗口右侧的“添加托管处理程序”打开对话框。我们希望我们的处理程序只用于以 .htest 结尾的请求;类型处输入类的名称,如果类有命名空间,必须同时包括命名空间;名称字段中输入处理程序摘要页面中可识别的名称;请求限制还能配置一些特别的选项,现在不需要,单击确定。

image

现在看到,主界面已经出现了我们配置的管道程序:

image

4. 测试处理程序

我们请求一个以 .htest 结尾,且由 FileCopy 应用程序提供服务的 URL,可以看见如下的效果了:

image

免责声明:文章转载自《ASP.NET 管理网站(应用程序池、应用程序预热、扩展集成管道)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS开发-OC语言 (一)oc数据类型.net Core 调用微信Jsapi接口,H5解析二维码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IIS网站服务器性能优化指南(转载)

原文网址:http://www.phontol.com/20090507_419416_1.htmlWindows Server自带的互联网信息服务器(Internet Information Server,IIS)是架设网站服务器的常用工具,它是一个既简单而又麻烦的东西,新手都可以使用IIS架设一个像模像样的Web站点来,但配置、优化IIS的性能,使得网...

微信支付v3发布到iis时的证书问题(转)

本文纯粹转载(原地址:微信支付v3发布到iis时的证书问题 ) 一开始报“出现了内部错误” 解决方法是 方法一 var cer = new X509Certificate(certpath, password,X509KeyStorageFlags.MachineKeySet); 方法二 iis 找到部署的站点应用连接池,右键高级设置,找到“加载用户配置文...

配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法

今天遇到了这个问题, 电脑系统:vs2010 win7系统 iis7 我运行在iis中配置的那个网站后,报错:错误代码 0x800700b7 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节 这个问题原因在于window7的IIS默认用的是ASP.NET v4.0应用程序...

IIS 之 添加MIME扩展类型及常用的MIME类型列表

  经常用IIS作为下载服务器的时候有时传上去的文件比如 example.mp4 文件名上传后,但是用http打开的时候确显示为 404 文件不存在。其实是IIS对文件的一种保护,不在IIS指定的MIME类型里的文件不会被操作。   常见的有 mp4 / flv / iso / 7z / apk 等扩展名的文件, iis 本身是没有指定MIME类型的,这类...

[转载]Access to the path '' is denied.解决方案

原文地址:Access to the path '' is denied.解决方案作者:趴着墙等红杏 ccess to the path '路径' is denied.我在网上找了很多资料,最后终于解决了,原来是因为在该文件的上级文件夹没有修改权限,也就是说,那个user用户没有修改的权限 问题如下:在windows 2003下安装了VS2003,在运行w...

windows server 2008 R2服务器安装IIS并添加网站

一、连接远程计算机 1、因为我的电脑是win7系统,故这里以win7为例,其他windows系统大同小异,首先点开开始菜单栏,在windows附件下找到远程桌面连接   或者采用通用的方法,利用快捷键win+R,之后在运行框中输入mstsc就可以调出远程桌面连接 2、在常规菜单栏下输入计算机名和用户名,在远程时,如果需要在远程计算机和本地计算机进行一些...