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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
     今天在查看电脑里的图片时发现了这组图片,是关于解决安装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

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
5月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
246 18
|
5月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
261 14
|
4月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
4月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
348 0
|
7月前
|
Python
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
322 69
|
7月前
|
JSON API 数据安全/隐私保护
使用curl命令在服务器上执行HTTP请求
总的来说,curl是一个非常强大的工具,它可以让你在命令行中发送各种类型的HTTP请求。通过学习和实践,你可以掌握这个工具,使你的工作更加高效。
547 30
|
6月前
|
存储 数据库 Python
使用HTTP POST协议将本地压缩数据发送到服务器
总的来说,使用HTTP POST协议将本地压缩数据发送到服务器是一个涉及多个步骤的过程,包括创建压缩文件,设置HTTP客户端,发送POST请求,以及服务器端的处理。虽然这个过程可能看起来复杂,但一旦你理解了每个步骤,就会变得相对简单。
229 19
|
6月前
|
存储 安全 数据安全/隐私保护
HFS-快速创建HTTP服务器
鉴于HFS的操作简便和方便快捷,它在满足快速,临时的文件分享和传输需求上,能够发挥出巨大的作用。只要明确了以上的安全警告,并做好了必需的安全设置,HFS将是一款实用的HTTP服务器工具。
493 9
|
7月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
232 22
|
8月前
|
缓存 负载均衡 安全
HTTP代理服务器对速度提升有何作用?
在信息化时代,网络成为生活不可或缺的一部分。HTTP代理服务器位于客户端与服务器之间,通过数据压缩、缓存机制和路由优化等方式,有效提高数据传输速度并保护个人信息安全。使用91HTTP等工具,用户可在业务需求中获得更快更安全的网络体验。
187 4

热门文章

最新文章