500 Internal Server Error 错误的一些原因

目录
[隐藏]

刚才在想试用pjblog的Live Writer离线写PJblog博客日志的功能时出现了这个错误提示,下面是微软网站上的帮助文档信息,摘录过来以作参考:

以下错误消息表明,返回错误时承载网站的 Web 服务器出现问题:

HTTP 500 – Internal Server Error

本文介绍如何排除这些错误。本文主要面向网站管理员。这些错误产生的原因很多,并且可影响许多不同的系统配置。本文所述步骤必须由服务器上管理员组的成员执行。

遇到这些错误的最终用户应就此问题通知网站管理员。
 

尝试加载 Localstart.asp 文件时

当网站的一个默认文档 Iisstart.asp 尝试加载 Localstart.asp 文件时,如果尝试访问此页面的用户不具有运行 Localstart.asp 文件中包含的脚本的正确权限,您会收到 HTTP 500 错误消息。如果清除“显示友好 HTTP 错误消息”复选框,将看到与下面的 HTTP 500 错误消息类似的信息:

Error Type:
Microsoft VBScript runtime (0x800A0046)
Permission denied:'GetObject'
/localstart.asp, line 19

出现此问题的原因是,Localstart.asp 文件中包含了使用 IIS Admin 对象访问元数据库的 Active Directory 服务接口 (ADSI) 和 Visual Basic Scripting Edition (VBScript) 代码。出于安全考虑,只有本地 Administrators 组的成员才能访问元数据库。这种现象是设计导致的。

要解决此问题,请按照下列步骤操作:

  1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“Internet 信息服务”。
  2. 在控制台树中,单击“默认网站”。在显示窗格中,右键单击“Localstart.asp”,然后单击“属性”。
  3. 在“文件安全”选项卡的“匿名访问和身份验证控制”中,单击“编辑”。
  4. 在“身份验证方法”属性页中,单击以清除“匿名访问”。

 

浏览 ASP 页面时

当您浏览 Active Server Pages (ASP) 网页时,会收到“HTTP 500.100 – Internal Server Error – ASP error”错误消息。如果清除“显示友好 HTTP 错误消息”复选框,将在“技术信息(用于支持人员)”部分看到类似下面这样的信息:

Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined:'x'
/OptionExplicitError.asp, line 9

Page:
GET /OptionExplicitError.asp

要解决此问题,请删除 Option Explicit 语句,或者使用 DIM 关键字声明变量。

要重现此问题,请在允许执行脚本的虚拟目录中运行包含以下代码的 ASP 文件:

<% Option Explicit %>
   <HTML>
   <HEAD>
   <TITLE>500-100 Undeclared Variable</TITLE>
   </HEAD>
   <BODY>
   <P>About to use an undeclared variable</P>
   <% 
     x = 5
   %>
   </B></P>
   </BODY>
   </HTML>
				

要修改此示例,请使用 DIM 语句声明 X 变量,如下所示:

<% Option Explicit %>
   <HTML>
   <HEAD>
   <TITLE>500-100 Undeclared Variable</TITLE>
   </HEAD>
   <BODY>
   <P>About to use an undeclared variable</P>
   <% 
     DIM x
     x = 5
   %>
   </B></P>
   </BODY>
   </HTML>
				

 

IIS 5.0 返回 Server.GetLastError 错误消息时

当某个 Web 应用程序或页面不可用时,IIS 会返回一个错误消息。其结果是自定义的 ASP 页面处理对服务器端脚本错误的响应。此页面返回状态“500 Internal Server Error”,这导致客户端远程脚本小程序不向远程脚本对象返回任何数据。

要解决此问题,请创建一个返回状态“200 OK”的自定义错误页面,然后在远程脚本服务器页面或应用程序的“自定义错误”部分引用此页面。为此,请按照下列步骤操作:

注意:可以为各个页面、整个应用程序或者整个网站或 Web 服务器设置此自定义错误页面。

  1. 创建 %SystemRoot%HelpIISHelpCommon500-100.asp 的副本,并将它存储在与原始文件相同的文件夹中。将新文件命名为 500-100-OK.asp。
  2. 单击“开始”,指向“程序”,指向“附件”,然后单击“记事本”。
  3. 在记事本中,单击“文件”菜单上的“打开”。在“查找范围”下拉框中,浏览到 500-100-OK.asp 文件,然后单击“打开”。
  4. 将下面的代码

    Response.Status = "500 Internal Server Error"
    					

    替换为:

       Response.Status = "200 OK"
    					

    注意:如果以前没修改过错误消息,则代码的原始行为第 12 行。

     

  5. 在“文件”菜单中,单击“保存”。
  6. 在 Internet 服务管理器的控制台树中,单击您的 Web 服务器。如果您的远程脚本 ASP 页面位于其中一个网站下的 Web 应用程序中,则展开您的 Web 应用程序。
  7. 在“详细信息”窗格中,右键单击您的远程脚本服务器 ASP 页面,然后单击“属性”。
  8. 单击“自定义错误”。在列表中,查找 500;100 的项。默认情况下,该项被设置为一个 URL 并引用 Help/Common/500-100.asp。单击“编辑属性”。
  9. 修改路径,使其指向 /IISHelp/Common/500-100-OK.asp,单击“确定”,然后再次单击“确定”。

 

给 Alpha 或 UNIX 上的文件分配类别时

给 Alpha 或 UNIX 上的文件分配类别时,会收到一个 HTTP 500 错误消息。

要解决此问题,请安装 Microsoft Office 2000 Service Release 1 (SR-1) 或 Service Release 1a (SR-1a)。要下载 Office 2000 SR-1,请参见下面的 Microsoft 网站:

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=AF6C8D03-7633-45B4-AB96-795EE656F2A2 (http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=AF6C8D03-7633-45B4-AB96-795EE656F2A2)

 

将 500-100.asp 文件用于非默认网站上的错误处理时

将 500-100.asp 文件用于非默认网站上的错误处理时,会收到一个 HTTP 500 错误消息。

要解决此问题,请按照下列步骤操作:

  1. 在“Internet 信息服务”管理单元的控制台树中,右键单击相应的网站,单击“新建”,然后单击“虚拟目录”。
  2. 在“虚拟目录创建向导”中,单击“下一步”。在“别名”文本框中,键入 IISHelp,然后单击“下一步”。
  3. 当提示您输入内容文件夹的路径时,单击“浏览”,选择 WINNTHelpIisHelp 文件夹,然后单击“下一步”。
  4. 在“访问权限”页面中,接受所有默认值,单击“下一步”,然后单击“完成”。
  5. 再次右键单击网站,然后单击“属性”。
  6. 在“自定义错误”选项卡中,选择 "500;100" 错误行,然后单击“编辑属性”。
  7. 在“信息类型”列表框的 URL 文本框中,键入 /iisHelp/common/500-100.asp
  8. 单击“确定”,然后再次单击“确定”。

 

在索引服务器中执行查询时

单击“开始”在索引服务器中执行查询时,可能会收到一个 HTTP 500 错误消息。

出现此错误的原因是,没有为包含查询页面的文件夹定义默认的应用程序起始点。

要解决此问题,请按照下列步骤操作:

  1. 在“Internet 信息服务”管理单元的控制台树中,右键单击包含查询页面的站点的根目录,然后单击“属性”。
  2. 在“主目录”选项卡中,单击“创建”。
  3. 单击“确定”,然后重试查询。

 

从 ASP 页面中访问提供程序时

如果清除了“显示友好 HTTP 错误消息”复选框,当您尝试从 ASP 页面中访问提供程序时,可能会收到以下错误消息:

ADODB.Connection (0x800A0E7A) Provider cannot be found.It may not be properly installed./Nwind.asp, line 10

出现此错误的原因是,Microsoft 数据访问组件 (MDAC) 所需的动态链接库 (DLL) 尚未注册。

  1. 单击“开始”,单击“运行”,然后键入 cmd
  2. 在命令提示符下,键入 cd %systemroot%:Program FilesCommon FilesSystemOle
  3. 在命令提示符下,键入 regsvr32 sqloledb.dll
  4. 收到 DLL 成功注册的确认后,单击“确定”。注意:此解决方案使用了 Microsoft SQL Server OLE Provider DLL (Sqloledb.dll) 作为示例。由于未注册的 DLL 可能会因使用的 OLE DB 提供程序而异,所以您必须根据具体情况修改步骤 2。

 

在 IIS 5.0 上设置 COM+ 应用程序标识时

当您尝试在 IIS 5.0 上设置 COM+ 应用程序标识时,会收到一个 HTTP 500 错误消息。

当 COM+ 应用程序或 Microsoft Transaction Server (MTS) 程序包的标识被配置为“交互式用户 – 当前已登录的用户”时,会出现此问题。由于当前没有用户登录到 IIS 控制台,所以应用程序无法运行。

要解决此问题,请将 COM+ 应用程序或 MTS 程序包的标识设置为“此用户”,然后指定一个用户帐户。为此,请按照下列步骤操作:

  1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“组件服务”。
  2. 在控制台树中,依次展开“组件服务”、“计算机”、“我的电脑”和“COM+ 应用程序”。查找希望更改其标识的应用程序。
  3. 右键单击相应的 COM+ 应用程序,然后单击“属性”。
  4. 在“标识”选项卡中,单击“此用户”,键入一个有效的计算机帐户,然后单击“确定”。

在 IIS 4.0 上设置 MTS 应用程序标识时

当您在 IIS 4.0 上设置 MTS 程序标识时,会收到一个 HTTP 500 错误消息。

要解决此问题,请按照下列步骤操作:

  1. 在“Internet 信息服务”管理单元中,依次展开“计算机”、“我的电脑”和“Microsoft Transaction Server”。查找希望更改其标识的程序包。应用程序列在“已安装的应用程序包”文件夹中。
  2. 右键单击该程序包,然后单击“属性”。
  3. 在“标识”选项卡中,单击“此用户”,键入一个有效的帐户,然后单击“应用”。
 

IIS 4.0 在自己的内存空间中运行时

如果满足以下任一条件,就会收到 HTTP 500 错误消息:

  • IIS 4.0 的默认网站作为一个独立的进程在自己的内存空间中运行。
  • Microsoft Internet Explorer 被配置为在 Proxy Server 2.0 上使用 Web 代理服务器。
  • BackOffice Small Business Server 4.5 版上的 Internet Explorer 被配置为使用代理服务器,并且启用了代理服务器数据包筛选。

要解决此问题,请按照下列步骤操作:

  1. 单击“开始”,指向“程序”,单击“Microsoft Proxy Server”,然后单击“Microsoft 管理控制台”。
  2. 在控制台树中,展开 Internet Information Server 文件夹,然后展开服务器对象。
  3. 右键单击“默认网站”,然后单击“属性”。
  4. 在“主目录”选项卡中,找到“应用程序设置”区域,然后单击以清除“在单独的内存空间运行(独立进程)”。
  5. 单击“应用”,然后单击“确定”。
  6. 右键单击“默认网站”,然后单击“停止”。
  7. 右键单击“默认网站”,然后单击“启动”。
点赞 (0)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code