如何在IIS 7.0中配置ASP.NET应用程序

如果 ASP.NET Web 应用程序以 IIS 7.0 为宿主,则可以用多种方式为该应用程序进行配置设置。这包括:

使用 IIS 管理器。

直接编辑 Web.config 文件。可以在 Visual Studio 或 Visual Web Developer 中或通过使用文本编辑程序完成此任务。

使用 IIS 7.0 命令行工具 (Appcmd.exe)。使用此实用工具,可以指定 IIS 配置设置和 Web 应用程序配置设置。

使用 Windows Management Instrumentation (WMI)。IIS 7.0 WMI 提供程序 WebAdministration 命名空间包含相应的类和方法,可用来为网站、Web 应用程序及其关联对象和属性的管理任务创建脚本。

IIS 7.0 具有模块化体系结构,使您能够指定哪些模块组成 Web 服务器的功能。安装 IIS 7.0 时,默认情况下很多模块未启用。当您使用 ASP.NET 网站时,可能需要启用下列模块:

IIS 6 管理兼容性模块,它使 Visual Studio 能够使用元数据库调用与 IIS 7.0 配置存储区进行交互。

Windows 身份验证模块,它使您能够在 Visual Studio 中调试 Web 应用程序

一、在本演练中,您将使用 IIS 管理器进行配置设置,然后查看这些设置如何反映在 Web 应用程序的 Web.config 文件中。本演练中阐释的任务包括:

创建一个自定义托管代码模块,并且将该模块放在 Web 应用程序的 App_Code 目录中。

使用 IIS 管理器注册该自定义模块。

使用 IIS 管理器添加自定义 HTTP 标头。

该模块的功能在本演练中并不重要。本演练要演示的是如何将该模块集成到请求管道中,以及使用 IIS 管理器配置应用程序会对 Web.config 文件造成怎样的影响。

一、创建自定义HTTP模块

首先,您需要创建一个新网站。

创建新的网站

在 Visual Studio 中,创建一个新的名为“WalkthroughIIS7”的本地 HTTP 网站。

有关如何创建本地 IIS 网站的信息,请参见演练:在 Visual Web Developer 中创建本地 IIS 网站。

在“开始”菜单上,依次单击“所有程序”、“附件”和“运行”。

在“打开”框中,键入 inetmgr,然后单击“确定”。

您现在可以创建自定义 HTTP 模块了。

创建自定义 HTTP 模块

在 Visual Studio 的“解决方案资源管理器”中,右击 Web 项目节点,再单击“添加新项”。

显示“添加新项”对话框。

在“Visual Studio 已安装的模板”下选择“类”。

选择您想使用的编程语言。

输入“CustomModule”作为类名,然后单击“添加”。

如果网站尚未包含 App_Code 文件夹,此时将显示一个消息,询问您是否要将该类放在 App_Code 文件夹中。如果答案是肯定的,请单击“是”。

在类文件中,移除现有代码,并用下面的代码替换之:

public class CustomModule : IHttpModule
{
    public CustomModule()
    {
        // Constructor
    }
    public void Init(HttpApplication app)
    {
        app.BeginRequest += new EventHandler(BeginRequest);
    }
    public void BeginRequest(object source, EventArgs e)
    {
    
        HttpApplication app = (HttpApplication)source;
        HttpContext cont = app.Context;
        string notification = cont.CurrentNotification.ToString();
        string postNotification = cont.IsPostNotification.ToString();
        cont.Response.Headers.Set("CustomHeader2", "ASPX, Event = " + notification +
                ", PostNotification = " + postNotification +
                ", DateTime = " + DateTime.Now.ToString());
    
    }
    public void Dispose()
    {
    }
}




转载请注明:http://www.shhjfk.com/jbjj/jbjj/4.html