SERVER 03 IIS7 升级到08 IIS7的问题

错误代码参考:http://support.microsoft.com/kb/943891/zh-cn

从上面看到这个问题是因为:httpModules 、httpHandlers 没有配置对,最后在网上查找是因为IIS7  的应用程序池根据托管管道模式分了两种模式:集成经典。

为了解决这个问题,有2种方式,一,如果又要让现在的程序支持IIS6 和IIS7那么就得把IIS7下面设置为经典模式。二,如果该程序只在IIS7下面跑那么就必须得修改WEB.CONFIG文件了。

安装 IIS7

IIS7 被分成了很多个组件,默认是不安装的,你需要安装这些组件。

下图对应的功能,可以通过以下步骤打开:
开始 --> 控制面板 --> 程序 --> 打开或关闭 Windows 功能

SERVER 03 IIS7 升级到08 IIS7的问题_第1张图片

配置IIS7

1、IIS7 在安装了上述组件后,一些功能并没有启用,你需要把它启用起来:

下述配置功能你可以在

控制面板 --> 管理工具 -->Internet 信息服务(IIS)管理器 程序中找到

打开 Internet 信息服务(IIS)管理器 后,在中间部分的下部,可以看到 身份验证 配置项,双击就是如下界面:

SERVER 03 IIS7 升级到08 IIS7的问题_第2张图片

刚才我们增加的几个身份验证,需要在你要调试的站点上启用。

注意:是你要调试的站点,而不是你要调试的应用程序目录!

2、IIS7 应用程序池的设置也就是设置经典或者是集成模式

在默认情况下新建的站点是集成模式,那么该如何修改成经典模式呢?如下图:

SERVER 03 IIS7 升级到08 IIS7的问题_第3张图片

双击后:

SERVER 03 IIS7 升级到08 IIS7的问题_第4张图片

一个可以选择其.NET 的版本,一个可以选择模式。

 

-----------------------------------------------------------------------------------

如果想让IIS7设置为集成模式,那么就必须修改配置文件了。

因为使用Integrated(集成)模式,那么对自定义的httpModules和httpHandlers就要修改配置文件了,需要将他们转移到 <system.webServer>下的<modules>和<handlers节里去。

那么说一下IIS7的两种模式和IIS6的区别:

IIS7.0 Integrated mode:asp.net的modules和handlers从<system.webServer>下的<modules>和<handlers>里读取,以前的<system.web>下的<httpModules>和<httpHandlers>配置节会被忽略,如果设置禁止验证(disabled validation),是不会产生错误的。

IIS7.0 Classic mode:与以上情况是相反的,<modules>和<handlers>会被忽略。

IIS6.0 :ASP.NET 的modules和handlers都是从<httpModules> 和<httpHandlers>进行加载的。

如果想在IIS7和IIS6都能跑的程序参见:http://mvolo.com/creating-portable-aspnet-applications-that-work-on-iis-60-iis-70-classic-and-iis-70-integrated-modes

你可能感兴趣的:(server)