php抓取网页数据(http500内部服务器连接错误|解决方法原因分析综合分析)

优采云 发布时间: 2022-03-15 13:19

  php抓取网页数据(http500内部服务器连接错误|解决方法原因分析综合分析)

  http 500 内部服务器错误表示 IIS 服务器无法解析 ASP 代码。尝试访问静态页面,看看是否也会出现此问题。如果访问静态页面没有问题,应该分为以下几类

  情况分析:

  ① 是否更改了计算机名称?

  ② 站点所在的文件目录是否有自定义的安全属性。

  ③ 安装域控制器后是否调整了域策略。如果这是其中一种情况,请

  改回参数设置,看看是否能解决问题。

  如果静态空间也无法访问,则解析尚未生效。

  首先,您必须确定错误的原因:

  让 IE 显示详细的错误信息:

  菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选项

  ,然后刷新错误页面,就可以看到详细的错误信息,这对于帮助你判断错误在哪里很有帮助。

  帮助!

  500错误的常见原因有:ASP语法错误、ACCESS数据库连接语句错误、文件引用

  收录路径有错误,使用了服务器不支持的组件,例如 FSO 等。

  另一种解释:

  xp下的IIS5.1无法执行ASP文件,报错!500 内部服务器连接错误|解决方法

  原因分析

  综合分析以上错误表现,可以看出http 500内部错误主要是iwam账号(即我电脑中的iwam_myserver账号)密码错误造成的。

  在详细分析http500内部错误的原因之前,先简单介绍一下iwam账号:iwam账号是安装IIS5时系统自动创建的内置账号,主要用于启动应用程序的上网信息服务过程之外。iwam 帐户的名称将根据每台计算机的 netbios 名称而有所不同。一般格式为iwam_machine,由“iwam”前缀、连接线“_”和计算机的netbios名称组成。我电脑的netbios名字是myserver,所以我电脑上的iwam账号的名字是iwam_myserver,和iis匿名账号isur_machine的命名方式很相似。

  iwam账户建立后,由活动目录、iis元数据库和com+应用程序共同使用。账号密码由三方保存,操作系统负责同步三方保存的iwam密码。按照常理,我们可以放心,负责操作系统的工作不用担心出错,但不知道是bug还是其他原因,系统对iwam账号的密码同步有时会失败,导致三方iwam账号使用的密码不一致。当iis或com+应用程序使用错误的iwam密码登录系统并启动iis进程外池应用程序时,系统会因密码错误而拒绝请求,

  三.解决办法

  知道了http 500内部错误的原因,解决方法比较简单,就是手动同步活动目录、iis元数据库和com+应用中的iwam账号密码。

  具体操作分为三个步骤,都需要以管理员身份登录电脑,提供足够的操作权限(iwam账号以iwam_myserver为例)。

  (一)更改活动目录中 iwam_myserver 帐户的密码

  因为iwam账号的密码是系统控制的,随机生成的,我们不知道是什么。为了完成后面两步的密码同步,我们必须将iwam账户的密码设置为一个我们知道的值。

  1、选择开始->程序->管理工具->Active Directory 用户和计算机以启动 Active Directory 用户和计算机管理单元。

  2、点击“用户”,右侧选择“iwam_myserver”,右键选择“重置密码(t)...”,在弹出的重置密码框中为iwam_myserver设置新密码,这里我们设置为“aboutnt2001”(不带引号),OK,等待修改密码成功。

  (二)同步iis元数据库中iwam_myserver账户的密码

  可能是因为这个改动太敏感太重要了,微软没有提供明确的用户界面让我们修改iis元数据库中的iwam_myserver账号密码,只提供了一个iis5的管理脚本adsutil.vbs,位于c:\inetpub \ adminscripts 子目录(位置可能会根据您在安装 iis5 时设置的设置而有所不同)。

  adsutil.vbs 脚本功能强大,参数多,用法复杂。这里只介绍使用该脚本修改iwam_myserver账户密码的方法:

  adsutil 设置 w3svc/wamuserpass 密码

  “password”参数是要设置的iwam账号的新密码。因此,将iis元数据库中iwam_myserver账户密码修改为“aboutnt2001”的命令为:

  c:\inetpub\adminscripts>adsutil 设置 w3svc/wamuserpass “aboutnt2001”

  修改成功后,系统会显示如下提示:

  wamuserpass:(字符串)“aboutnt2001”

  (三)sync com+ 应用程序使用的 iwam_myserver 的密码

  要同步com+应用程序使用的iwam_myserver的密码,我们有两种选择:一种是使用组件服务mmc snap-in,另一种是使用iwam账户同步脚本synciwam.vbs。

  1、使用组件服务 mmc 管理单元

  (1)启动组件服务管理单元:选择“开始”->“运行”->“mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,添加“组件服务”管理单元添加。

  (2)找到“组件服务”->“计算机”->“我的电脑”->“com+Applications”->“进程外池化应用程序”,右键“进程外池化应用程序”应用程序“池应用程序”->“属性”。

  (3)切换到“进程外池应用程序”属性对话框的“标志”选项卡。在“此应用程序在以下帐户下运行”选择中,将选择“此用户”,并且用户名是“iwam_myserver”,这些都是默认值,不需要更改。在下面的“密码”和“确认密码”文本框中输入正确的密码“aboutnt2001”,确认退出。

  (4)如果系统提示“应用程序是由多个外部产品创建的,您确定要被这些产品支持吗?”,您可以确认一下。

  (5)如果我们在iis中将其他一些web的“应用保护”设置为“高(独立)”,那么这个web使用的com+应用的iwam账号密码也需要同步。重复(< @1)-(4)步骤,同步其他对应进程外应用的iwam账号密码。

  2、使用iwam账号同步脚本synciwam.vbs

  其实微软已经发现iwam账号密码同步有问题,所以在iis5的管理脚本中,单独写了一个脚本synciwam.vbs用于iwam账号密码同步。该脚本位于 c:\inetpub\adminscripts 子目录中(位置可能会根据您安装 iis5 时的设置而有所不同)。

  synciwam.vbs 脚本的使用比较简单:

  cscript synciwam.vbs [-v|-h]

  “-v”参数表示详细显示脚本执行的整个过程(推荐),“-h”参数用于显示简单的帮助信息。

  在com+应用中同步iwam_myserver账号的密码,我们只需要执行“cscript synciwam.vbs -v”,如下:

  cscript c:\inetpub\adminscripts\synciwam.vbs -v

  microsoft (r) windows 脚本宿主版本 5.6

  版权所有 (c) 微软公司 1996-2000。版权所有。

  wamusername:iwam_myserver

  wamuserpass:aboutnt2001

  iis 应用程序定义:

  名称、应用隔离、包 ID

  w3svc, 0, 3d14228c-fbe1-11d0-995d-00c04fd919c1}

  根, 2,

  iishelp, 2,

  iisadmin, 2,

  iissamples, 2,

  msadc, 2,

  根, 2,

  iisadmin, 2,

  iishelp, 2,

  根, 2,

  根, 2,

  进程外应用程序定义:

  计数:1

  3d14228d-fbe1-11d0-995d-00c04fd919c1}

  更新应用程序:

  名称:iis 进程外池应用程序密钥:3d14228d-fbe1-11d0-995d-00c04fd919c1}

  从上述脚本的执行可以看出,使用synciwam.vbs脚本比使用组件服务更全面、更快捷。它首先从iis元数据库中找到iwam账号“iwam_myserver”,取出对应的密码“aboutnt2001”,然后搜索所有已定义的iis应用程序和进程外应用程序,并同步每个进程外应用程序应用程序的iwam帐户一个密码。

  在使用synciwam.vbs脚本时,要注意一个问题,即在运行synciwam.vbs之前,必须确保iis元数据库和活动目录中的iwam密码一致。因为synciwam.vbs脚本是从iis元数据库而不是活动目录中获取iwam账号的密码,所以如果iis元数据库中的密码不正确,synciwam.vbs获取的密码也会出错,同步操作执行到“更新应用程序”,系统会报80110414的错误,即“Cannot find application 3d14228d-fbe1-11d0-995d-00c04fd919c1}”。

  好了,至此,活动目录中的iwam账号密码、iis元数据库和com+应用程序的密码已经同步成功,你的asp程序又可以运行了!

  修改成功后,系统会显示如下提示:

  -------------------------------------------------- -

  经过测试,显示应该是

  wamuserpass:(字符串)“*******”

  http 500 内部服务器错误可能与 IIS 服务器无法专门加载应用程序有关:

  现象:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线