【IIS问题】解决HTTP500内部服务器错误办法之归纳

简介:
     今天在查看电脑里的图片时发现了这组图片,是关于解决安装IIS后出现HTTP500内部服务器错误问题的一组捕捉图片,应该说我安装IIS也有好多次了,每次安装完后都要出现这个问题,奇怪的是,虽然是同一个问题,可是解决的方法却各不相同,当时有想写下来的想法,所以去年在操作的时候把过程捕捉下来了,后来不知怎么把这事忘记了,既然今天又把它重新翻出来了,那待我好好想一想把它写下来吧。呵呵~由于时间长了有点忘记当时的操作过程了:
     记得当时想在电脑上浏览自己做的一个小网站,因为电脑重装了系统,以前装好的都没了,所以必须重装IIS(那时装的是5.1版)安装好后先看了几个静态的html网页,显示正常,再浏览网站文件夹里index.asp,打开来的是下面(图1)那个界面,
 
这是友好提示的http错误信息,如果打开IE,选择工具——internet选项——高级——取消"显示http友好错误提示\"的复选框,网页会显示下面的出错提示:
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
(大致意思是:服务器应用程序错误——该服务器遇到一个错误,同时装载在您的请求处理的申请。请参阅事件日志的详细信息。请联系服务器管理员求助!)
于是我打开事件查看器,查看日志见很多MSDTC服务和设备的错误,错误日志如下(图2)
 
 
根据在网上资料判断是帐户不同步引起的,于是按如下步骤来同步密码:
1)右键单击 我的电脑---->管理---->本地用户和组---->用户
右键单击 启动IIS进程帐号 IWAM_**** (注:****一般是计算机名)点击设置密码,设置为一个你想要的密码。
2)同步IIS 配置数据库密码:
此处命令有二种,一种可以查看密码,一种是修改密码:
a.你可以利用查看密码命令查看 IWAM密码,然后把第一步中用户IWAM密码设置为与 查看到的IIS配置数据库密码 一样
b.也可以利用修改密码命令把IIS配置数据库密码修改为密码。
在获取密码的时候如果显示的结果密码为“******”应当修改Adsutil.vbs文件,修改方法:在c:\inetpub\adminscripts 找到adsutil.vbs (根据装系统时设定的不同,有的路径可能不一样)如下(图3)
 
 
 用记事本打开此文件 查找 IsSecureProperty = True (注意=前后各有一个空格
),将 IsSecureProperty = True 改为 IsSecureProperty = False 保存关闭。 如下(图4)
 
 
然后点击开始---->运行,输入cmd回车 打开命令行工具
先输入 cd c:\inetpub\adminscripts
获取 IWAM 帐户密码命令: cscript.exe adsutil.vbs get w3svc/wamuserpass
获取 IUSR 帐户密码命令: cscript.exe adsutil.vbs get w3svc/anonymoususerpass
输入以上命令,按回车可分别查看IWAM和IUSR的密码。
现在来把密码修改一致:
修改 IWAM 帐户密码 cscript.exe adsutil.vbs set w3svc/wamuserpass "password"
修改 IUSR 帐户密码 cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password" 如下(图5)
 
 
password 设置为你想修改的密码,即与第一步中你设置的用户IWAM _****的相同,按回车即可修改完成。
这里一定要注意:w3svc与wamuserpass之间的杠是/而不是\,否则会出错。
并且还要注意:修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。
如何停止?打开计算机管理,在Internet信息服务上单击右键,选择重新启动IIS服务,在选项中点停止IIS服务,确定即可。
 
3)更改组件服务中的密码
开始--->程序--->附件 打开命令提示符
先输入 cd c:\inetpub\adminscripts
然后输入 cscript.exe synciwam.vbs -v
系统会如下(图6)提示:
然后只要运行了一下iisreset重启IIS就可以了。
 
 
但是我这里最后一步提示8004e00f的错误,此错误是MSDTC服务不正常造成的,解决方法:1、打开控制面板--->管理工具--->组件服务,发现“我的电脑”有向下的红色小箭头,再点击它下面的“com+应用程序”文件夹的时候,提示如下(图7)
 
 
  2、进入事件查看器(图8),打开这4个错误日志来看,发现msdtc服务没有正常启动:
 
 
4个错误日志详情如下:
事件类型: 错误          
事件来源: MSDTC
事件种类: 服务 
事件 ID: 4163
日期:  2009-8-20
事件:  13:24:42
用户:  N/A
计算机: xxxxxxx
描述:
找不到 MS DTC 日志文件。在确认所有由 MS DTC 协调的资源管理器不具有“不确定”状态的事务之后,请运行 msdtc -resetlog 创建日志文件。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

事件类型: 错误
事件来源: MSDTC
事件种类: 磁盘 
事件 ID: 4185
日期:  2009-8-20
事件:  13:24:42
用户:  N/A
计算机: xxxxxxx
描述:
MS DTC 事务管理器启动失败。LogInit 返回错误 0x2。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

事件类型: 错误
事件来源: MSDTC
事件种类: 设备 
事件 ID: 4112
日期:  2009-8-20
事件:  13:24:42
用户:  N/A
计算机: xxxxxxx
描述:
无法启动 MS DTC 事务管理器。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

事件类型: 错误
事件来源: COM+
事件种类: (98)
事件 ID: 4691
日期:  2009-8-20
事件:  13:24:42
用户:  N/A
计算机: xxxxxxx
描述:
运行时环境无法初始化支持事务处理组件所需的事务。请确认 MS-DTC 正在运行。(DtcGetTransactionManagerEx(): hr = 0x8004d01b)
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

 
  3、删除注册表中的键:点击开始---->运行---->输入regedit后确定打开注册表编辑器删除下面三个键,路径如下
  · HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC  (图9)
 
 
  · HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC (图10)
 
 
  · HKEY_CLASSES_ROOT\CID (图11)
 
 
  4、停止MSDTC服务:net stop msdtc
  5、卸载MSDTC服务:msdtc -uninstall
  6、重新安装MSDTC服务:msdtc -install (图12)
  
 
         7、确认在事件查看器中msdtc服务已经正常启动,这步很关键,如果没有,重新启动下电脑看看,现在进入组件服务,“我的电脑”上的红色小箭头没有了,可以打开“com+应用程序”只是打开后没有看到以下的三个组件:
IIS In-Process Applications (IIS 进程内应用程序)
IIS Out-of-Process Pooled Applications (IIS 进程外应用程序)
IIS Utilities (IIS 实用工具)(图13)
 
 
这是服务器系统中的ASP相关组件(com+组件)出现了问题,我有几次安装IIS后发现问题查到这里看到是一个或二个,没有完整的三个,既然是不全的,那必须删除这剩余的组件,有时会删除不掉,那需要先将属性里的高级中“禁止删除”的勾选取消后再来删除。删除后再打开命令提示符输入:
“cd %windir%\system32\inetsrv”字符串命令,单击回车键后,再执行
“rundll32 wamreg.dll,CreateIISPackage”命令,接着再依次执行
“regsvr32 asptxn.dll”命令,最后输入
“iisreset”命令,重新启动一下计算机操作系统后就可看到完整的com+组件了(图14)
 
 
这也就说明IIS服务器能正确响应ASP脚本,这时再打开管理---->服务和应用程序---->默认网站下打开ASP页面会发现可以正常访问了。
安装过好多次IIS,发现操作步骤就是上面这几个,不过不一定要按上面的顺序来,只要能把这几个步骤都做一遍了,基本上也就能正常浏览ASP页面。(在网上看到关于HTTP 500 内部服务器错误的资料很多很杂,看得人头昏眼花的还没明白个所以然,所以我把它归纳出来希望对大家有所帮助)。
 


本文转自 彐火王木木 51CTO博客,原文链接:http://blog.51cto.com/linger/310376

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
15天前
|
监控 Unix 应用服务中间件
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
|
11天前
|
网络协议 数据格式 Python
Python进阶---HTTP协议和Web服务器
Python进阶---HTTP协议和Web服务器
19 4
|
14天前
|
自然语言处理 负载均衡 监控
处理HTTP请求的服务器
处理HTTP请求的服务器
32 1
|
16天前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
38 1
|
16天前
|
JSON JavaScript 中间件
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
13 2
|
16天前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
17 0
|
17天前
|
JavaScript
http-server实现本地服务器
使用Node.js的http-server模块创建本地服务器:先确保安装Node.js和npm,然后在命令行中安装http-server模块,运行`npm install http-server -g`。接着,切换到目标文件夹并启动服务器,输入`http-server`或带端口号的`http-server -p 3000`。最后,通过`http://localhost:8080`(或指定端口)访问服务器。
|
3天前
|
弹性计算 监控 开发工具
【阿里云弹性计算】阿里云ECS的网络优化实践:VPC配置与网络性能提升
【5月更文挑战第29天】阿里云ECS通过虚拟私有云(VPC)提供高性能、安全的网络环境。VPC允许用户自定义IP地址、路由规则和安全组。配置包括:创建VPC和交换机,设定安全组,然后创建ECS实例并绑定。优化网络性能涉及规划网络拓扑、优化路由、启用网络加速功能(如ENI和EIP)及监控网络性能。示例代码展示了使用Python SDK创建VPC和交换机的过程。
27 3
|
3天前
|
存储 固态存储 安全
阿里云4核CPU云服务器价格参考,最新收费标准和活动价格
阿里云4核CPU云服务器多少钱?阿里云服务器核数是指虚拟出来的CPU处理器的核心数量,准确来讲应该是vCPU。CPU核心数的大小代表了云服务器的运算能力,CPU越高,云服务器的性能越好。阿里云服务器1核CPU就是一个超线程,2核CPU2个超线程,4核CPU4个超线程,这样云服务器可以同时处理多个任务,计算性能更强。如果网站流程较小,少量图片展示的企业网站,建议选择2核及以上CPU;如果网站流量较大,动态页面比较多,有视频等,建议选择4核、8核以上CPU。
阿里云4核CPU云服务器价格参考,最新收费标准和活动价格
|
2天前
|
弹性计算
阿里云ECS的使用心得
本文主要讲述了我是如何了解到ECS,使用ECS的一些经验,以及自己的感悟心得