HTTP 错误 500.100 - 内部服务器错误 - ASP 错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 错误 500.100 - 内部服务器错误 - ASP 错误相关的知识,希望对你有一定的参考价值。

怎样解决......... 具体点.
我用的程序是动易和动网,在本地调试,是不是其它的原因...谢谢 Public Function Execute(Command)
If Not IsObject(Conn) Then ConnectionDatabase
If IsDeBug = 0 Then
On Error Resume Next
Set Execute = Conn.Execute(Command)
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "查询数据的时候发现错误,请检查您的查询代码是否正确。"
Response.End
End If
Else
If ShowSQL=1 Then
Response.Write command & "<br>"
End If
Set Execute = Conn.Execute(Command)
End If
SqlQueryNum = SqlQueryNum+1
End Function

调试错误啊

作者: idcngncn 发表日期: 2006-05-23

平时写程序的时候出错时的解决方法,不太全,但是一般问题应该都有了,呵呵,欢迎大加添加新的错误信息及解决方法

I.
Active Server Pages, ASP 0126 (0x80004005) --> 找不到包含文件

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21) --> sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) --> sql语句出错(字段名错
误,或数据类型不匹配)

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) --> sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)

Microsoft OLE DB Provider for ODBC Drivers (0x80040E57) --> sql语句出错(要插入或更新的数据溢出)

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) --> sql语句出错(update字段名或要更新的数据类型错误)

Microsoft OLE DB Provider for ODBC Drivers (0x80004005) --> sql语句出错(要插入或更新的字段的数值不能为空值)

Microsoft OLE DB Provider for ODBC Drivers (0x80004005) --> 打开数据库出错,没有在指定目录发现数据库

Microsoft OLE DB Provider for ODBC Drivers (0x80040E37) --> 没有发现表

Microsoft VBScript 运行时错误 (0x800A000D) --> 错误引用rs变量(rs对像已关闭或未定义)

Microsoft VBScript 运行时错误 (0x800A01C2) --> vbscript脚本错误(vbscript语句出错)

Microsoft VBScript 运行时错误 (0x800A01F4) --> 变量未定义

Microsoft VBScript 运行时错误 (0x800A0006) --> vbscript脚本错误(溢出错误)

Microsoft VBScript 编译器错误 (0x800A040E) --> 缺少loop

Microsoft VBScript 编译器错误 (0x800A03EA) --> 缺少if或end if

Microsoft VBScript 编译器错误 (0x800A03EE) --> 语句未结束(缺少")")

Microsoft VBScript 编译器错误 (0x800A03F6) --> if语句出错(缺少end if)

Microsoft VBScript 运行时错误 (0x800A005B) --> 缺少set

Microsoft VBScript 运行时错误 (0x800A0005) --> 变量未定义

Microsoft VBScript 编译器错误 (0x800A03F9) --> if语句缺少then

Microsoft VBScript 编译器错误 (0x800A0411) --> dim语句定义错误

Microsoft VBScript 编译器错误 (0x800A0408) --> sql语句错误(?????????????????)

ADODB.Recordset (0x800A0BB9) --> sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)

ADODB.Recordset (0x800A0CC1) --> rs对像出错(rs对像本身不存在或错误地引用了一个不
存在的字段名)

ADODB.Recordset (0x800A0BCD) --> rs对像出错(记录集中没有记录却对记录集进行操作)

ADODB.Recordset (0x800A0E78) --> rs对像出错(记录集不存在,缺少rs.open语句)

ADODB.Recordset (0x800A0CC1) --> rs对像出错(引用了一个不存在的字段名)

ADODB.Recordset (0x800A0E7D) --> conn定义错误

ADODB.Recordset (0x800A0CB3) --> 数据库以只读方式打开,无法更新

II.
问题描述:
ASP无组件上传程序无法上传较大的文件“Request 对象 错误 'ASP 0104 : 80004005'”,(大概大于100kb就不行),但是原先在2000 server中可以上传5m左右的文件。

解决方法:
在IIS属性中选中“允许直接编辑配置数据库”,然后。在服务里关闭iis admin service服务
找到windows\system32\inesrv\下的metabase.xml编辑其中的ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K,把它修改为51200000(50M)或者更大。然后重启iis admin service服务

亦可使用Metabase Explorer,参考:
http://www.microsoft.com/downloads/details.aspx?FamilyId=56FC92EE-A71A-4C73-B628-ADE629C89499

适用:Windows 2003 IIS 6.0

III.
http错误405 不能使用该方法的原因:
这个是dreamweaver本身的程序问题,dreamweaver mx和dreamweaver mx2004都有这个问题存在,现在官方已经推出了升级补丁来解决这个问题了。
http错误405 不能使用该方法的解决办法:
一.要解决这个问题,您还是先要检查您要联机的数据库权限是否适合,相关的教材:
www.e-dreamer.idv.tw/action.php?action=counthits&article_id=60
二.若使用的是 Dreamweaver MX(6.0),请:
1.下载此更新档: www.macromedia.com/support/dreamweaver/ts/documents/err405/scripts.zip
2.关闭Dreamweaver MX。
3.重新命名本地Scripts数据夹,改成Scripts_bak
(路径)\Dreamweaver MX\Configuration\Connections\
注:程序预设安装路径为 C:\Program Files\Macromedia\.
4.解压缩内含有Scripts数据夹的压缩文件到步骤(3)同样的数据夹。
(安装路径)\Dreamweaver MX\Configuration\Connections\
注:压缩文件内含有Scripts数据夹。
5.从你的测试服务器上将_mmServerScripts数据夹删除,以便让Dreamweaver重新部署连结数据库的script。
6.重新启动Dreamweaver MX
7.安装6.1更新档后无法正确格式化代码
解决方法:下载此更新档,安装后即可修正问题
更新档地址:http://download.macromedia.com/pub/support/dreamweaver/patches/noindexfix_dwmx6_1.mxp
8.当然您也可以下载 Dreamweaver MX 6.01 的更新程序来安装。
www.macromedia.com/support/dreamweaver/downloads_updaters.html
三.若使用的是 Dreamweaver MX 2004(7.0),请直接下载 7.01 更新档案来安装,下载的页面:
www.macromedia.com/support/dreamweaver/downloads_updaters.html
相关信息
Dreamweaver MX (6.0) 出现「HTTP错误405不允许这个方法」的原因及解决方法官方说明页:
www.macromedia.com/support/dreamweaver/ts/documents/err405.htm
Dreamweaver MX 2004 (7.0) 出现「HTTP错误405不允许这个方法」更新档说明列示处:
www.macromedia.com/support/dreamweaver/ts/documents/dw701_resolved_detail.htm#I

IV.
1.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
engine cannot open the file ''(unknown)''. It is already opened exclusively
by another user, or you need permission to view its data.
原因:
这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)
检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件
也可能建立在别的目录,例如 /Winnt.
使用NT的文件监视程序监视文件失败时到底是访问了什么目录。
这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

2.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn''t use ''(unknown)''; file already in use.
原因:
多人使用时数据库被锁定。

3.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
原因:
最可能的原因是ConnectString是一个在global.asa中初始化的Session变量,但是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)
<%= "''auth_user'' is " & request.servervariables("auth_user")%>
<P>
<%= "''auth_type'' is " & request.servervariables("auth_type")%>
<P>
<%= "connection string is " & session("your_connectionstring")%>
<P>
还有一个原因就是你在你的ConnectString中加入了多余的空格,例如
DSN = MyDSN; Database = Pubs;
试试改成下面这个样子:
DSN=MyDSN;Database=Pubs;

如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。

还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。
最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。

4.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Driver Manager] Data source name not ??
原因:
这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。
如果ODBC的版本不一致的话,就会发生该错误。
解决办法是安装最新版本的MDAC

5.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open
registry key ''DriverId''.
原因:
这个错误发生在爱从注册表中读取数值的时候。使用regedit32.exe检查你的注册表的权限。
你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。该程序到这找:http://www.sysinternals.com

6.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).
原因:
两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,
这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。
错误原因是:
当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,
另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。
这样它就不允许你访问它上面的资源,导致错误。

两个解决办法:
1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)
2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。

7.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005'' Microsoft][ODBC
Microsoft SQL Driver] Logon Failed()
原因:
该错误是由SQL Server产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,
也可能是在NT中没有SQL影射帐号造成的。

使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用CoonectString而不能够使用DSN文件。
因为DSN中没有保存用户名和密码。
检查NT是否给SQL映射了帐号。

8.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason:
Not defined as a valid user of a trusted SQL Server connection.
原因:
原因同上。
试试这个办法:在SQL Server的Enterprise Manager中,选择Server/SQL Server/Configure[ASCII
133]/Security Options/Standard.
如果是运行在IIS4中,取消选择该项目的Password Synchronization选项。

9.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn''t lock file.
原因:
也许是没有正确的权限生成Access数据库的锁定文件(.ldb)
默认时,该文件和你的数据库是同一个目录的。
给匿名帐号全权访问数据库共享目录的权限。

有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeShareDenyWrite ''8

10.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Microsoft Access 97 Driver] ''(unknown)'' isn''t a valid
path. Make sure that the path name is spelled correctly and that you are
connected to the server on which the file resides.
原因:
路径非法。最可能发生在当Global.asa和CoonecntString被使用到另外一台机器上的时候。

11.错误信息
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in
it exceed the limit of 16 tables.

原因:
查询太复杂了,对查询有限制。

12.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check
your network document
原因:
当装有SQL Server的机器改名的时候。但是DSN还使用了原来的机器名。
参考技术A 仔细看看
原因分析
综合分析上面的错误表现我们可以看出,主要是由于iwam账号(在我的计算机即是iwam_myserver账号)的密码错误造成了http
500内部错误.在详细分析http500内部错误产生的原因之前,先对iwam账号进行一下简要的介绍:iwam账号是安装iis5时系统自动建立的一个内置账号,主要用于启动进程之外的应用程序的internet信息服务。iwam账号的名字会根据每台计算机netbios名字的不同而有所不同,通用的格式是iwam_machine,即由“iwam”前缀、连接线“_”加上计算机的netbios名字组成。我的计算机的netbios名字是myserver,因此我的计算机上iwam账号的名字就是iwam_myserver,这一点与iis匿名账号isur_machine的命名方式非常相似。
iwam账号建立后被active
directory、iis
metabase数据库和com+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的iwam密码的同步工作。按常理说,由操作系统负责的工作我们大可放心,不必担心出错,但不知是bug还是其它什么原因,系统的对iwam账号的密码同步工作有时会失败,使三方iwam账号所用密码不统一。当iis或com+应用程序使用错误iwam的密码登录系统,启动iis
out-of-process
pooled
applications时,系统会因密码错误而拒绝这一请求,导致iis
out-of-process
pooled
applications启动失败,也就是我们在id10004错误事件中看到的“不能运行服务器
3d14228d-fbe1-11d0-995d-00c04fd919c1
”(这里
3d14228d-fbe1-11d0-995d-00c04fd919c1
是iis
out-of-process
pooled
applications的key),不能转入iis5应用程序,http
500内部错误就这样产生了。
三.解决办法
知道了导致http
500内部错误的原因,解决起来就比较简单了,那就是人工同步iwam账号在active
directory、iis
metabase数据库和com+应用程序中的密码。
具体操作分三步,均需要以管理员身份登录计算机以提供足够的操作权限(iwam账号以iwam_myserver为例)。
(一)更改active
directory中iwam_myserver账号的密码
因iwam账号的密码由系统控制,随机产生,我们并不知道是什么,为完成下面两步的密码同步工作,我们必须将iwam账号的密码设置为一个我们知道的值。
1、选择“开始”->“程序”->“管理工具”->"active
directory用户和计算机",启动“active
directory用户和计算机”管理单元。
2、单击“user”,选中右面的“iwam_myserver”,右击选择“重设密码(t)...”,在跳出的重设密码对方框中给iwam_myserver设置新的密码,这儿我们设置成“aboutnt2001”(没有引号的),确定,等待密码修改成功。
(二)同步iis
metabase中iwam_myserver账号的密码
可能因为这项改动太敏感和重要,微软并没有为我们修改iis
metabase中iwam_myserver账号密码提供一个显式的用户接口,只随iis5提供了一个管理脚本adsutil.vbs,这个脚本位于c:\inetpub\adminscripts子目录下(位置可能会因你安装iis5时设置的不同而有所变动)。
adsutil.vbs脚本功能强大,参数非常多且用法复杂,这里只提供使用这个脚本修改iwam_myserver账号密码的方法:
adsutil
set
w3svc/wamuserpass
password
"password"参数就是要设置的iwam账号的新的密码。因此我们将iis
metabase中iwam_myserver账号的密码修改为“aboutnt2001”的命令就是:
c:\inetpub\adminscripts>adsutil
set
w3svc/wamuserpass
"aboutnt2001"
修改成功后,系统会有如下提示:
wamuserpass:
(string)
"aboutnt2001"
(三)同步com+应用程序所用的iwam_myserver的密码
同步com+应用程序所用的iwam_myserver的密码,我们有两种方式可以选择:一种是使用组件服务mmc管理单元,另一种是使用iwam账号同步脚本synciwam.vbs。
1、使用组件服务mmc管理单元
(1)启动组件服务管理单元:选择“开始”->“运行”->“mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。
(2)找到“组件服务”->“计算机”->“我的电脑”->“com+应用程序”->“out-of-process
pooled
applications”,右击“out-of-process
pooled
applications”->“属性”。
(3)切换到“out-of-process
pooled
applications”属性对话框的“标志”选项卡。“此应用程序在下列账户下运行”选择中“此用户”会被选中,用户名是“iwam_myserver”。这些都是缺省的,不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码“aboutnt2001”,确定退出。
(4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。
(5)如果我们在iis中将其它一些web的“应用程序保护”设置为“高(独立的)”,那么这个web所使用的com+应用程序的iwam账号密码也需要同步。重复(1)-(4)步,同步其它相应out
of
process
application的iwam账号密码。
2、使用iwam账号同步脚本synciwam.vbs
实际上微软已经发现iwam账号在密码同步方面存在问题,因此在iis5的管理脚本中单独为iwam账号密码同步编写了一个脚本synciwam.vbs,这个脚本位于c:\inetpub\adminscripts子目录下(位置可能会因你安装iis5时设置的不同而有所变动)。
synciwam.vbs脚本用法比较简单:
cscript
synciwam.vbs
[-v|-h]
“-v”参数表示详细显示脚本执行的整个过程(建议使用),“-h”参数用于显示简单的帮助信息。
我们要同步iwam_myserver账号在com+应用程序中的密码,只需要执行“cscript
synciwam.vbs
-v”即可,如下:
cscript
c:\inetpub\adminscripts\synciwam.vbs
-v
microsoft
(r)
windows
script
host
version
5.6
版权所有(c)
microsoft
corporation
1996-2000。保留所有权利。
wamusername:iwam_myserver
wamuserpass:aboutnt2001
iis
applications
defined:
name,
appisolated,
package
id
w3svc,
0,
3d14228c-fbe1-11d0-995d-00c04fd919c1
root,
2,
iishelp,
2,
iisadmin,
2,
iissamples,
2,
msadc,
2,
root,
2,
iisadmin,
2,
iishelp,
2,
root,
2,
root,
2,
out
of
process
applications
defined:
count:
1
3d14228d-fbe1-11d0-995d-00c04fd919c1
updating
applications:
name:
iis
out-of-process
pooled
applications
key:
3d14228d-fbe1-11d0-995d-00c04fd919c1
从上面脚本的执行情况可以看出,使用synciwam.vbs脚本要比使用组件服务的方法更全面和快捷。它首先从iis的metabase数据库找到iwam账号"iwam_myserver"并取出对应的密码“aboutnt2001”,然后查找所有已定义的iis
applications和out
of
process
applications,并逐一同步每一个out
of
process
applications应用程序的iwam账号密码。
使用synciwam.vbs脚本时,要注意一个问题,那就是在你运行synciwam.vbs之前,必须保证iis
metabase数据库与active
directory中的iwam密码已经一致。因为synciwam.vbs脚本是从iis
metabase数据库而不是从active
directory取得iwam账号的密码,如果iis
metabase中的密码不正确,那synciwam.vbs取得的密码也会不正确,同步操作执行到“updating
applications”系统就会报80110414错误,即“找不到应用程序
3d14228d-fbe1-11d0-995d-00c04fd919c1”。
好了,到现在为止,iwam账号在active
directory、iis
metabase数据库和com+应用程序三处的密码已经同步成功,你的asp程序又可以运行了!
修改成功后,系统会有如下提示:
---------------------------------------------------
经过测试,显示应该是
wamuserpass:
(string)
"*******"
如果以上方法仍未尝试成功,可以采取临时解决方法,即右键点击站点,选择“属性”,在“主目录”标签下,有一个“应用程序保护”,将其改为“低(IIS进程)”即可,如有虚拟目录,也要改。这样应该可以正常访问了,当然,从安全角度来说,这只是临时解决方法,如果按上面的方法你尝试不成功,最后还是得重装IIS。一个重装过的朋友告诉我他重装的经验是,先卸载,再打SP3,然后重装。
参考技术B 关涉到权限时,跟IIS设置,跟你的操作系统,还有存放源码的硬盘格式都有关系
如果IIS里的设置可以读写的话,那就应该是硬盘格式为NTFS,此格式硬盘在没有设置的情况下只能读,不能写入,就有可能出现此类情况
解决办法:
在你安装论坛的硬盘上(比如说F盘)点右键进入属性
然后点安全,点添加输入everyone,确定,(如果安全里有everyone就不用添加了)
选中everyone,然后在下面的权限里选中完全控制,确定就可以了!
如果你的操作系统是win
xp,则在进行上一步操作前,先进行以下操作,不然在属性对话框中找不到“安全”标签。
打开我的电脑,依次选择:
“工具”--“文件夹选项”--“查看”标签
在“高级设置”里将“使用简单文件共享(推荐)”复选框去掉,确定退出
还有一种情况,就是可能asp文件出错:
打开数据库时以只读形式打开
解决方法,把打开数据库形式改为读写形式:
把rs.open
sql,conn,1,1
改为rs.open
sql,conn,1,3
参考技术C 说明你的程序有问题,你把代码复制过来,分析一下

以上是关于HTTP 错误 500.100 - 内部服务器错误 - ASP 错误的主要内容,如果未能解决你的问题,请参考以下文章

安装好ASP和IIS后,测试网页为何限制浏览?

我装的IIS服务器中,数据库只能读不能写,是为啥?

HTTP 500 内部服务器错误怎么办?

HTTP 500内部服务器错误怎么解决。

HTTP 500内部服务器错误怎么解决。

错误代码 0x80070021 HTTP 错误 500.19 - 内部服务器错误