ASP.NET 管理网站(应用程序池、应用程序预热、扩展集成管道)
2013-04-02 16:53
435 查看
应用程序池可以对相似或相关的应用程序分组,简化配置和管理。同样地,被分配到不同应用程序池的应用程序相互独立,这样,某个应用程序池中的问题不会影响到其他应用程序池中的应用。
没有把应用程序分配到应用程序池的硬性或快速规则。你可以因为它们具有相似的性能指标、或同属一个部门、或其他任何对环境有意义的原因而进行分组。其中,最有用的功能是让不同的应用程序池使用不同版本的 .NET Framework。
IIS 7 自动创建几个应用程序池,通过 IIS 管理器可以查看并管理应用程序池:
名称:应用程序池创建后就不能再修改。
状态:显示应用程序池是否在运行,即该应用程序池中的应用程序的请求是否被响应。
托管管道模式:IIS 7 支持集成和经典两种模式。
标识:运行应用程序池中应用程序的 Windows 帐号
应用程序:分配到应用程序池中的应用程序数量。
1. 创建新应用程序池
通过 IIS 管理器右侧的“添加应用程序池”创建自定义的应用程序池,可输入名称,选择模式(经典模式是为了兼容旧应用程序)。
2. 把应用程序分配到应用程序池
在 IIS 管理器中选择应用程序,单击右侧“操作”里的“基本设置”,可选择该应用程序被分配的应用程序池:
3. 启动和停止应用程序池
启动和停止对应了应用程序的请求是否被响应。“回收”操作重置应用程序池,对于处理那些逐步产生的难于诊断的问题非常有用。
4. 并行执行
应用程序池可以让你在同一台服务器上运行不同版本的 ASP.NET 应用程序。如果要修改使用 VS 项目创建的网站的 .NET 版本,需要修改项目的设置并重新部署,否则会在请求网站时看到配置错误。
对于大型和复杂的应用程序,响应初始请求所需的时间可能非常长。应用程序预热功能是 IIS 7.5 开始新增的。对于每个配置使用预热功能的应用程序,IIS 7 在启动时执行了一组请求(由你指定),即真正用户的第一次请求到达时,所有准备工作早已经就绪了。
(即使不准备使用应用程序预热,也可以使用 aspnet_compiler.exe 命令行工具执行预编译以提升应用程序的初始性能)
1. 准备 IIS 7
使用 WebPI 平台再次下载“用于 IIS 7.5 的应用程序预热”,安装完成后刷新或重启 IIS 管理器。
2. 配置应用程序预热
双击新安装的“应用程序预热”新图标,对话框进行简单的设置即可。
1. 创建处理程序
新建类库项目 SimpleHandler,添加下面这个类,实现 IHttpHandler 接口,并生成 DLL 文件:
[/code]
2. 部署应用程序
将此 DLL 文件复制到服务器,放到应用程序根的 bin 目录里。如果 bin 目录不存在,则创建它。我们以系列文章之前部署的 FileCopy 应用程序为例:
3. 配置处理程序
使用 IIS 管理器,选择要修改的应用程序(此处是 FileCopy 应用程序),双击“处理程序映射”图标打开“处理程序映射”界面:
单击窗口右侧的“添加托管处理程序”打开对话框。我们希望我们的处理程序只用于以 .htest 结尾的请求;类型处输入类的名称,如果类有命名空间,必须同时包括命名空间;名称字段中输入处理程序摘要页面中可识别的名称;请求限制还能配置一些特别的选项,现在不需要,单击确定。
现在看到,主界面已经出现了我们配置的管道程序:
4. 测试处理程序
我们请求一个以 .htest 结尾,且由 FileCopy 应用程序提供服务的 URL,可以看见如下的效果了:
没有把应用程序分配到应用程序池的硬性或快速规则。你可以因为它们具有相似的性能指标、或同属一个部门、或其他任何对环境有意义的原因而进行分组。其中,最有用的功能是让不同的应用程序池使用不同版本的 .NET Framework。
IIS 7 自动创建几个应用程序池,通过 IIS 管理器可以查看并管理应用程序池:
名称:应用程序池创建后就不能再修改。
状态:显示应用程序池是否在运行,即该应用程序池中的应用程序的请求是否被响应。
托管管道模式:IIS 7 支持集成和经典两种模式。
标识:运行应用程序池中应用程序的 Windows 帐号
应用程序:分配到应用程序池中的应用程序数量。
1. 创建新应用程序池
通过 IIS 管理器右侧的“添加应用程序池”创建自定义的应用程序池,可输入名称,选择模式(经典模式是为了兼容旧应用程序)。
2. 把应用程序分配到应用程序池
在 IIS 管理器中选择应用程序,单击右侧“操作”里的“基本设置”,可选择该应用程序被分配的应用程序池:
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 文件:
[code]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
}
}
[/code]
2. 部署应用程序
将此 DLL 文件复制到服务器,放到应用程序根的 bin 目录里。如果 bin 目录不存在,则创建它。我们以系列文章之前部署的 FileCopy 应用程序为例:
3. 配置处理程序
使用 IIS 管理器,选择要修改的应用程序(此处是 FileCopy 应用程序),双击“处理程序映射”图标打开“处理程序映射”界面:
单击窗口右侧的“添加托管处理程序”打开对话框。我们希望我们的处理程序只用于以 .htest 结尾的请求;类型处输入类的名称,如果类有命名空间,必须同时包括命名空间;名称字段中输入处理程序摘要页面中可识别的名称;请求限制还能配置一些特别的选项,现在不需要,单击确定。
现在看到,主界面已经出现了我们配置的管道程序:
4. 测试处理程序
我们请求一个以 .htest 结尾,且由 FileCopy 应用程序提供服务的 URL,可以看见如下的效果了:
相关文章推荐
- ASP.NET 管理网站(应用程序池、应用程序预热、扩展集成管道)
- 【ASP.NET 问题】IIS发布网站后出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”的解决办法
- 【C#.NET】保护你的ASP.NET应用程序(四)ASP.NET网站管理工具
- ASP.NET 网站管理工具中的“应用程序”制表页
- 在配置win7 IIS浏览网站时 检测到在集成的托管管道模式下不适用的ASP.NET设置 的解决方法
- ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码
- 在使用ASP.NET网站管理工具出现“遇到错误。请返回上一页并重试。”的解决办法!
- Asp.Net北大青鸟总结(三)-应用程序状态管理
- 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。 - CatcherX
- [课堂笔记]ASP.NET网站管理工具无法连接SQL Sever数据库解决办法
- 新建网站与新建Asp.Net+Web+应用程序的区别
- 新建网站与新建Asp.Net Web 应用程序的区别
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- ASP.NET网站管理
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作
- 集成轻量级的IIS实现打包Asp.Net网站生成exe方便快捷的进行客户演示
- 把自己的ASP.NET应用程序与SharePoint集成在一起
- 三、ASP.NET应用程序状态管理
- asp.net 跨网站/应用程序池/虚拟目录/域名 的Session共享解决方案
- 【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo