我先把主要过程叙述一下,叙述完有每个问题的具体操作方法。
今天我在XP上安装IIS,运行网站出现“HTTP 500 - 内部服务器错误”。
打开HTML没有问题,打开ASP文件时就出现“HTTP 500 - 内部服务器错误”,网站程序本身是绝对没有问题的。
查阅了N多资料,网上总结的说就几种情况:IIS有问题,iis帐号同步问题,ntfs访问权限问题
IIS我得装了几遍,还是不行,iis帐号同步、ntfs访问权限的等这些方法也都是试了,还是没搞定,
最后不得不重装系统,结果重装系统后还是出现一样的问题。我都气的要吐血了。。。。。。。
静下心来细细的思考了一番。。。这才发现,我前一个系统因autocad安装了.net1.1 ,这个新系统因ATI控制中心也装了.net2.0,
于是我把.net2.0卸载掉,重装安装iis,吐血,还是不行。。。。。
又思考了一番,思量着是不是iis没卸载干净,于是用网上的方法彻底的卸载了一次,
再次运次还是出500错误,然后ntfs权限设置好,帐号密码同步。。。ok。终于搞定了。。。
这可折腾死我了。。。^-^
整个过程中,主要出现的几个问题与详细解决方法:
一.iis和.net包的安装顺序问题,正确的是先装iis再装.net包
二.iis彻底卸载方法:
1、先把IIS卸载。
(进安全模式中操作以下步骤)
2、把 %windir%\system32\inetsrv 删除。
3、把%windir%\iisX.log删除,X 是IIS版本。
4、把 \inetpub\ 目录删除。
三、ntfs权限设置
Windows XP简体专业版下设置IIS的权限(如果网站所在的分区不是NTFS文件系统就不用设置权限,在分区的属性里可以查看是什么文件系统),对于Windows 2000/2003同样适用。以C:\wwwroot文件夹演示。
右键点击wwwroot目录,选择“属性”,可能会出现下图所示情况,没有“安全”标签。
如果没有“安全”标签,请先进行“文件夹选项”设置,如果有了则跳过。
1、“工具”→“文件夹选项”
2、“查看”→去掉“使用简单文件共享 (推荐)”前的勾
3、“确定”完成。然后再右键点击wwwroot目录,选择“属性”。
wwwroot目录的属性里有“安全”标签了,不过“组或用户名称”里没有IIS的用户。
点击“添加(D)...”,出现“选择用户或组”对话框。
点击“高级(A)...”→“立即查找(N)”。
将会显示本机所有组或用户:
选择以“IUSR_”开头的用户名称,名称的后段是你的计算机名称(图中我的计算机名称是QIUYI),如IUSR_QIUYI。点击“确定”。
再点击“确定”。回到wwwroot目录的属性设置对话框。
此时“组或用户名称”里有了“Internet 来宾帐户 (QIUYI\IUSR_QIUYI)”,红色部分为你的计算机名称。选中“Internet 来宾帐户 (QIUYI\IUSR_QIUYI)”,在下面的权限设置里的“允许”项选中“修改”,“确定”完成。
至此,文件夹的权限设置完毕,IIS对此目录有“修改”权限了,可以读写文件,也可以读写数据库,ASP的运行权限应该没有问题了。
四、iis账户同步
先启动MSDTC服务,什么是MSDTC服务?显示名称:Distributed Transaction Coordinator;描述:协调跨多个数据库、消息队列、文件系统等资源管理器的事务。如果停止此服务,则不会发生这些事务。如果禁用此服务,显式依赖此服务的其他服务将无法启动。
CMD下net start msdtc
结果显示“distributed transaction coordinator 服务不能启动”。
解决方法:
把 C:\WINDOWS\system32\dtclog 这个目录重命名(如果有这个目录的话,没有就直接省去这一步),然后重新建立该目录。
接着开始--运行--打cmd,
msdtc -resetlog
net start msdtc
然后右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。
接着开始--运行--打cmd,
cd C:\Inetpub\AdminScripts
cscript.exe adsutil.vbs set w3svc/wamuserpass 你设置的密码
cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你设置的密码
cscript.exe synciwam.vbs -v
iisreset
cd %windir%\system32\inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll
(注:一行就是一个命令,CreateIISPackage 是大写,建议把这些语句直接复制到命令行里执行,省的打错)
关闭所有的IE窗口后重新打开网站,OK搞定了!!网站打开了。。。