解决与HTTP 500 – 内部服务器错误错误信息有关的问题

时间:2021-08-20 18:03:59
HOW TO:解决与“HTTP 500 - Internal Server Error”(HTTP 500 – 内部服务器错误)错误信息有关的问题

原文:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;311766

本任务的内容
摘要

尝试加载 Localstart.asp 文件时
浏览 ASP 页面时
IIS 5.0 返回 Server.GetLastError 错误信息时
给 Alpha 或 UNIX 上的文件分配类别时
将 500-100.asp 文件用于非默认 Web 站点上的错误处理时
在索引服务器中执行查询时
从 ASP 页面中访问提供程序时
在 IIS 5.0 上设置 COM+ 应用程序标识时
在 IIS 4.0 上设置 MTS 应用程序标识时

IIS 4.0 在自己的内存空间中运行时
参考
概要
本文说明如何解决与“HTTP 500 - Internal server error”错误有关的问题。这些错误产生的原因很多,并且可影响许多不同的系统配置。解决过程按问题出现的情况分类。Administrators 组的成员必须执行本文中介绍的所有步骤。

返回页首 

尝试加载 Localstart.asp 文件时

当 Web 站点的一个默认文档 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 组的成员才能访问元数据库。这种现象是设计所导致的。

要解决此问题,请按照以下步骤操作: 
单击开始,指向程序,指向管理工具,然后单击 Internet 信息服务。
在控制台树中,单击默认 Web 站点。在显示窗格中,右键单击 Localstart.asp,然后单击属性。
在文件安全选项卡的匿名访问和身份验证控制中,单击编辑。
在身份验证方法属性页中,单击以清除匿名访问。
返回页首 

浏览 ASP 页面时
当您浏览 Active Server Pages (ASP) Web 页面时,会收到“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 站点或 Web 服务器设置此自定义错误页面。 
创建 %SystemRoot%/WinNT/Help/IISHelp/Common/500-100.asp 的副本,并将它存储在与原始文件相同的文件夹中。将新文件命名为 500-100-OK.asp。
单击开始,指向程序,指向附件,然后单击记事本。
在记事本中,单击文件菜单上的打开。在查找范围下拉框中,浏览到 500-100-OK.asp 文件,然后单击打开。
将下面的代码Response.Status = "500 Internal Server Error"
                                        
替换为:    Response.Status = "200 OK"
                                        
注意:如果以前没修改过错误信息,则代码的原始行为第 12 行。


在文件菜单中,单击保存。
在 Internet 服务管理器的控制台树中,单击您的 Web 服务器。如果您的远程脚本 ASP 页面位于其中一个 Web 站点下的 Web 应用程序中,则展开您的 Web 应用程序。
在“详细信息”窗格中,右键单击您的远程脚本服务器 ASP 页面,然后单击属性。
单击自定义错误。在列表中,查找 500;100 的项。默认情况下,该项被设置为一个 URL 并引用 Help/Common/500-100.asp。单击编辑属性。
修改路径,使其指向 /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 Web 站点: 
http://office.microsoft.com/downloads/2000/O2kSR1DDL.aspx

返回页首 

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

要解决此问题,请按以下步骤操作: 
在“Internet 信息服务”管理单元的控制台树中,右键单击相应的 Web 站点,单击新建,然后单击虚拟目录。
在“虚拟目录创建向导”中,单击下一步。在别名文本框中,键入 IISHelp,然后单击下一步。
当提示您输入内容文件夹的路径时,单击浏览,选择 WINNT/Help/IisHelp 文件夹,然后单击下一步。
在访问权限页面中,接受所有默认值,单击下一步,然后单击完成。
再次右键单击 Web 站点,然后单击属性。
在自定义错误选项卡中,选择 "500;100" 错误行,然后单击编辑属性。
在信息类型列表框的 URL 文本框中,键入 /iisHelp/common/500-100.asp。
单击确定,然后再次单击确定。
返回页首 

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

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

要解决此问题,请按以下步骤操作: 
在“Internet 信息服务”管理单元的控制台树中,右键单击包含查询页面的站点的根目录,然后单击属性。
在主目录选项卡中,单击创建。
单击确定,然后重试查询。
返回页首 

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

ADODB.Connection (0x800A0E7A) Provider cannot be found.It may not be properly installed./Nwind.asp, line 10 
出现此错误的原因是,Microsoft 数据访问组件 (MDAC) 所需的动态链接库 (DLL) 尚未注册。 
单击开始,单击运行,然后键入 cmd。
在命令提示符下,键入 cd %systemroot%:/Program Files/Common Files/System/Ole。
在命令提示符下,键入 regsvr32 sqloledb.dll。
收到 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 程序包的标识设置为此用户,然后指定一个用户帐户。为此,请按以下步骤操作: 
单击开始,指向程序,指向管理工具,然后单击组件服务。
在控制台树中,依次展开组件服务、计算机、我的电脑和 COM+ 应用程序。查找希望更改其标识的应用程序。
右键单击相应的 COM+ 应用程序,然后单击属性。
在标识选项卡中,单击此用户,键入一个有效的计算机帐户,然后单击确定。
返回页首 
在 IIS 4.0 上设置 MTS 应用程序标识时
当您在 IIS 4.0 上设置 MTS 程序标识时,会收到一个 HTTP 500 错误信息。

要解决此问题,请按以下步骤操作: 
在“Internet 信息服务”管理单元中,依次展开计算机、我的电脑和 Microsoft Transaction Server。查找希望更改其标识的程序包。应用程序列在“已安装的应用程序包”文件夹中。
右键单击该程序包,然后单击属性。
在标识选项卡中,单击此用户,键入一个有效的帐户,然后单击应用。
返回页首 
IIS 4.0 在自己的内存空间中运行时
如果满足以下任一条件,就会收到 HTTP 500 错误信息: 
IIS 4.0 的默认 Web 站点作为一个独立的进程在自己的内存空间中运行。
Microsoft Internet Explorer 被配置为在 Proxy Server 2.0 上使用 Web 代理服务器。
BackOffice Small Business Server 4.5 版上的 Internet Explorer 被配置为使用代理服务器,并且启用了代理服务器数据包筛选。
要解决此问题,请按以下步骤操作: 
单击开始,指向程序,单击 Microsoft Proxy Server,然后单击 Microsoft 管理控制台。
在控制台树中,展开 Internet Information Server 文件夹,然后展开服务器对象。
右键单击默认 Web 站点,然后单击属性。
在主目录选项卡中,找到应用程序设置区域,然后单击以清除在单独的内存空间运行(独立进程)。
单击应用,然后单击确定。
右键单击默认 Web 站点,然后单击停止。
右键单击默认 Web 站点,然后单击启动。
返回页首 


参考
有关“显示友好 HTTP 错误信息”选项的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中的相应文章: 
218155 超文本传输协议错误信息说明 

有关其他信息,请单击下面的文章编号,查看 Microsoft 知识库中的相应文章: 
245025 OFF2000:如何获得并安装 Microsoft Office 2000 SR-1/SR-1a 更新 

返回页首 









这篇文章中的信息适用于:
Microsoft Internet Information Server 4.0
Microsoft Internet Information Server 5.0
最近更新: 2004-8-13 (3.2)  
关键字: kbdownload kbhowto kbHOWTOmaster KB311766 kbAudDeveloper 


Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的或衍生性的损失或任何种类的损失,均不负任何责任,无论该等诉讼是合同之诉、疏忽或其它侵权行为之诉。