IIS 发布动态网站的常见错误

  首先,确保管理工具内“Internet 信息服务”的设置:
  1,网站(比如“默认站点”)在运行状态;
  2,网站(比如“默认站点”)属性里的主目录或者其下面的虚拟目录路径与你要发布的真实目录保持一致;
  3,如果没有文件上传的话,各目录属性里至少要有“读取”权限。

  然后在开始菜单“运行”里重新注册脚本执行需要的链接库:
  regsvr32 vbscript.dll
  regsvr32 jscript.dll

  “HTTP 500 - 内部服务器错误”:
  1,通常出现这类错误是因为你的计算机上有三处存储着 IIS 帐号“IWAM_[计算机名]”,而三处的密码不统一。要统一其密码,先要去管理工具内“计算机管理”(如果是域控制器则进 AD)把“IWAM_[计算机名]”修改密码;然后利用 IIS 安装时在“C:\Inetpub\AdminScripts”里附送的脚本 adsutil.vbs——在 CMD 里执行“cscript [路径]adsutil.vbs set w3svc/wamuserpass "[密码]" ”(没写“cscript”的话会问你是否要用 cscript.exe 来运行);最后利用 IIS 安装时在“C:\Inetpub\AdminScripts”里附送的脚本 synciwam.vbs——在 CMD 里执行“cscript [路径]synciwam.vbs -v”(或者在管理工具内“组件服务”里把“计算机 - 我的电脑 - COM+ 应用程序 - IIS Out-Of-Process Pooled Applications”的属性-标识里的密码改一下)。
  2,这样都不行就去下载个 IISFixer 的软件修复一下。

  “HTTP 500.100 - 内部服务器错误”:
  一般都是 NTFS 权限错误,如果把数据库放在 NTFS 的分区,偏偏你的动态网页有去数据库更新数据的行为,那么自然就权限不足了,把数据库所在文件夹的给予 Users 修改、写入的 NTFS 权限。当然,你也可以用其他方法,总之就是利用文件夹属性和“计算机管理-用户”放权。


IIS 出现 HTTP 500 内部错误以及 COM+ 0x8004e00f 错误的解决办法(MSDTC):

主要都是 IWAM 账号在 ActiveDirectory、IIS metabase 数据库和 COM+ 应用程序三处的密码无法同步,解决方法也很简单,大致有一下三个步骤:

1、重新设置 IIS 的 IWAM 账号密码。[在计算机管理中的用户管理里]
2、同步 IIS metabase 中 IWAM_MYSERVER 的密码,在 CMD 中:C:\Inetpub\AdminScripts>cscript adsutil.vbs set w3svc/wamuserpass "yourpassword"
3、同步 COM+ 应用程序所用的 IWAM_MYSERVER 密码,在 CMD 中:C:\Inetpub\AdminScripts>cscript synciwam.vbs -v,但是在进行第三步操作时总是报 0x8004e00f 错误。

后来在系统里不断的乱看,发现 MSDTC 服务不正常,于是先从这里下手,具体的解决方法如下:
1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM+ 应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
2、进入事件查看器,发现 MSDTC 服务没有正常启动。
3、删除注册表中的键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
HKEY_CLASSES_ROOT\CID
4、停止 MSDTC 服务:net stop msdtc
5、卸载 MSDTC 服务:msdtc -uninstall
6、重新安装 MSDTC 服务:msdtc -install
7、确认在事件查看器中 MSDTC 服务已经正常启动。[这步很关键,如果没有,重新启动下电脑看看,然后再同步密码(就是开始的那三步)]

其实“COM+ 无法与 Microsoft 分布式事务协调程序交谈”在安装了 Windows 组件中的消息队列后,就不会出现这个错误了,同时“消息队列”组件又对服务中的“Distributed Transaction Coordinator”(即 MSDTC 服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,上图中的 COM+ 应用程序菜单就可以打开了,表示其已正常工作!如果在这个时候再装 IIS 或者把 IIS 卸载重装,就不需要上面的手动密码同步问题了!就是说按这个步骤安装好 IIS,就已经正常了!实际上,手工同步密码太过麻烦,成功率也不高!

更多相关资料:http://muent.com/a/develop/aspnet/201004261244.html