以前一直和IIS5打交道,后来系统升级到WIN7,自然的就用上了IIS7了,不过因为对IIS7服务器没有系统的了解,所以在自己机子上测试发布网站时,总是遇到各种各样的问题,当时就放弃了,准备有时间再研究的,正好这两天有朋友问我发布的问题,也遇到几个问题,就顺便把这几个问题写下来,省的以后每次都麻烦,如果和我一样对IIS7不熟悉的朋友,希望我在这篇文章中遇到的问题能给你一些小小的帮助。
这里主要是将Web网站发布到本机的IIS上,这里以VS08建立的3.5下的网站为例,首先需要在程序中安装好IIS
在发布对话框中选择LocalIIS后,对话框里提示出现的2个问题 第一个问题是很简单,因为在Win7系统下发布到本机IIS需要管理员权限,右键选择“以管理员身份运行”软件即可
第二个问题我们暂且不解决,看看会带来什么状况,我们现在先将其发布到文件系统中,然后在IIS中新建网站
这步完成以后,我们浏览网站会出现HTTP 错误404.17-Not Found
这就是我们前面第二个问题引起的,提示没有IIS缺少Asp.net组件,出现这种情况的原因是因为机子先装的VS,然后装的IIS,虽然它不会影响编译等行为,但是会影响发布,解决方法是在找到C:\Windows\Microsoft.NET\Framework\v2.0.50727目录下的aspnet_regiis文件,运行该文件
出现上面错误的原因也是因为权限不够,用管理员权限运行命令行
安装成功后,重启一下网站再进行浏览,这里有个应用程序池的概念,在我们新建网站时都会创建一个同名的应用池,这里我们需要注意的是如果我们出现500.19的错误,那么你最好是对网站的应用程序池进行检查。
出现上面情况时的程序池信息
因为我现在的网站使用的.NET Framework3.5版本编译的程序集,所以我的程序池的.NET Framework版本要设为v2.0
现在我们已经解决了开始的两个问题,此时浏览网站就可以正常看到内容了。
现在我用VS2010发布一个4.0的程序到刚才的网站上,又碰到了点情况:
这个原因很简单,因为我们发布到刚才的网站时,应用程序池还是使用的2.0的.NET Framework,所以我们将其改为v4.0
这时再浏览网站,出现了这个错误:
这个原因是什么呢?在IIS7中的程序池包含了2种管道模式,出现上面情况的原因就是我们使用了经典模式
将其改为集成模式后,网站就可以正常浏览了。
以上是我个人在发布时碰到过的几个问题,因为对IIS7一些基本的东西不了解才会出现这么多问题,希望对你能有一点点帮助。