手里有一个项目--系统设置(主要功能是对系统一些字典表的设置、权限管理等功能)。在VS上运行没有任何问题。可是发布到IIS上之后,报黄页。
发布后程序运行环境为:
windows 7 32位
IIS为7
.Net FrameWork为4.0
经过搜索发现,故障原因为:
IIS应用程序池中,应用程序IISWEB的托管管道模式为集成模式导致。切换为经典模式后,程序运行正常。
为什么集成模式不能用呢?
搜索资料发现:
经典模式,是为了和IIS6等以前的版本兼容所设置的。
集成模式,是新的模式。
也就是IIS6和IIS7直接的不同导致了,报黄页。两个的不同,主要也就是在处理管道中进行处理的方式不同。
具体的细节可以看这篇文章:
为了同时使用经典模式和集成模式,我们可以修改一下配置文件:
简单来说,就是,将System.Web下 HttpModules中的内容,复制一份,放到System.WebServer下modules中就可以了。
这样,程序在集成模式和经典模式下,都可以很好的运行了。在打包程序的时候,也不用考虑IIS版本不同报黄页的情况了。
为什么这么做呢?
请搜索HttpHandler和HttpModule相关资料。