概要
本文说明如何解决与“HTTP 500 - Internal server error”错误有关的问题。这些错误产生的原因很多,并且可影响许多不同的系统配置。解决过程按问题出现的情况分类。Administrators 组的成员必须执行本文中介绍的所有步骤。
当 Web 站点的一个默认文档 Iisstart.asp 尝试加载 Localstart.asp 文件时,如果尝试访问此页面的用户不具有运行 Localstart.asp 文件中包含的脚本的正确权限,您会收到 HTTP 500 错误信息。如果清除 显示友好 HTTP 错误信息复选框,将看到与下面的 HTTP 500 错误信息类似的信息:
要解决此问题,请按照以下步骤操作:
要重现此问题,请在允许执行脚本的虚拟目录中运行包含以下代码的 ASP 文件:
要解决此问题,请创建一个返回状态“200 OK”的自定义错误页面,然后在远程脚本服务器页面或应用程序的“自定义错误”部分引用此页面。为此,请按以下步骤操作:
注意:可以为各个页面、整个应用程序或者整个 Web 站点或 Web 服务器设置此自定义错误页面。
要解决此问题,请安装 Microsoft Office 2000 Service Release 1 (SR-1) 或 Service Release 1a (SR-1a)。要下载 Office 2000 SR-1,请参见下面的 Microsoft Web 站点:
要解决此问题,请按以下步骤操作:
出现此错误的原因是,没有为包含查询页面的文件夹定义默认的应用程序起始点。
要解决此问题,请按以下步骤操作:
当 COM+ 应用程序或 Microsoft Transaction Server (MTS) 程序包的标识被配置为 交互式用户 - 当前已登录的用户时,会出现此问题。由于当前没有用户登录到 IIS 控制台,所以应用程序无法运行。
要解决此问题,请将 COM+ 应用程序或 MTS 程序包的标识设置为 此用户,然后指定一个用户帐户。为此,请按以下步骤操作:
要解决此问题,请按以下步骤操作:
要解决此问题,请按以下步骤操作:
尝试加载 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 组的成员才能访问元数据库。这种现象是设计所导致的。
Microsoft VBScript runtime (0x800A0046)
Permission denied:'GetObject'
/localstart.asp, line 19
要解决此问题,请按照以下步骤操作:
1. | 单击开始,指向程序,指向管理工具,然后单击 Internet 信息服务。 |
2. | 在控制台树中,单击默认 Web 站点。在显示窗格中,右键单击 Localstart.asp,然后单击属性。 |
3. | 在文件安全选项卡的匿名访问和身份验证控制中,单击编辑。 |
4. | 在身份验证方法属性页中,单击以清除匿名访问。 |
浏览 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 关键字声明变量。
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined:'x'
/OptionExplicitError.asp, line 9
Page:
GET /OptionExplicitError.asp
要重现此问题,请在允许执行脚本的虚拟目录中运行包含以下代码的 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 服务器设置此自定义错误页面。
1. | 创建 %SystemRoot%\WinNT\Help\IISHelp\Common\500-100.asp 的副本,并将它存储在与原始文件相同的文件夹中。将新文件命名为 500-100-OK.asp。 |
2. | 单击开始,指向程序,指向附件,然后单击记事本。 |
3. | 在记事本中,单击文件菜单上的打开。在查找范围下拉框中,浏览到 500-100-OK.asp 文件,然后单击打开。 |
4. | 将下面的代码 替换为: 注意:如果以前没修改过错误信息,则代码的原始行为第 12 行。 |
5. | 在文件菜单中,单击保存。 |
6. | 在 Internet 服务管理器的控制台树中,单击您的 Web 服务器。如果您的远程脚本 ASP 页面位于其中一个 Web 站点下的 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 Web 站点:
http://office.microsoft.com/downloads/2000/O2kSR1DDL.aspx
(http://office.microsoft.com/downloads/2000/o2ksr1ddl.aspx)
将 500-100.asp 文件用于非默认 Web 站点上的错误处理时
将 500-100.asp 文件用于非默认 Web 站点上的错误处理时,会收到一个 HTTP 500 错误信息。要解决此问题,请按以下步骤操作:
1. | 在“Internet 信息服务”管理单元的控制台树中,右键单击相应的 Web 站点,单击新建,然后单击虚拟目录。 |
2. | 在“虚拟目录创建向导”中,单击下一步。在别名文本框中,键入 IISHelp,然后单击下一步。 |
3. | 当提示您输入内容文件夹的路径时,单击浏览,选择 WINNT\Help\IisHelp 文件夹,然后单击下一步。 |
4. | 在访问权限页面中,接受所有默认值,单击下一步,然后单击完成。 |
5. | 再次右键单击 Web 站点,然后单击属性。 |
6. | 在自定义错误选项卡中,选择 "500;100" 错误行,然后单击编辑属性。 |
7. | 在信息类型列表框的 URL 文本框中,键入 /iisHelp/common/500-100.asp。 |
8. | 单击确定,然后再次单击确定。 |
在索引服务器中执行查询时
单击 Go在索引服务器中执行查询时,可能会收到一个 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 Files\Common Files\System\Ole。 |
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 的默认 Web 站点作为一个独立的进程在自己的内存空间中运行。 |
• | 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. | 右键单击默认 Web 站点,然后单击属性。 |
4. | 在主目录选项卡中,找到应用程序设置区域,然后单击以清除在单独的内存空间运行(独立进程)。 |
5. | 单击应用,然后单击确定。 |
6. | 右键单击默认 Web 站点,然后单击停止。 |
7. | 右键单击默认 Web 站点,然后单击启动。 |