zoukankan      html  css  js  c++  java
  • ASP.NET 管理网站(应用程序池、应用程序预热、扩展集成管道)

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

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

  • 相关阅读:
    解决UITableView中Cell重用机制导致内容出错的方法总结
    Hdu 1052 Tian Ji -- The Horse Racing
    Hdu 1009 FatMouse' Trade
    hdu 2037 今年暑假不AC
    hdu 1559 最大子矩阵
    hdu 1004 Let the Balloon Rise
    Hdu 1214 圆桌会议
    Hdu 1081 To The Max
    Hdu 2845 Beans
    Hdu 2955 Robberies 0/1背包
  • 原文地址:https://www.cnblogs.com/SkySoot/p/2995845.html
Copyright © 2011-2022 走看看