asp错误归纳.doc_第1页
asp错误归纳.doc_第2页
asp错误归纳.doc_第3页
asp错误归纳.doc_第4页
asp错误归纳.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

asp错误归纳windows2003中配置ASP 尽管2003号称安全性有很大突破,但其默认支持.net架构,对于Asp的系统需要我们手动去配置很多东西。在 IIS 6.0 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击。比如说默认配置数据库属性实施的最大 ASP 张贴大小为 204,800 个字节,并将各个字段限为 100 KB。一、启用Asp支持 Windows Server 2003 默认安装,是不安装 IIS 6 的,需要另外安装。安装完 IIS 6,还需要单独开启对于 ASP 的支持。 第一步,启用Asp,进入: 控制面板 - 管理工具 -IIS(Internet 服务器)- Web服务扩展 - Active Server Pages - 允许 控制面板 - 管理工具 -IIS(Internet 服务器)- Web服务扩展 - 在服务端的包含文件 - 允许 第二步,启用父路径支持。 IIS-网站主目录配置选项启用父路径 第三步,权限分配 IIS-网站(具体站点)(右键)权限Users完全控制 二、解决windows2003最大只能上载200K的限制。 先在服务里关闭iis admin service服务,找到windowssystem32inesrv下的metabase.xml, 打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,使之可以上传大于 200k的文件(修改成您要的大小就可以了,如在后面补两个0,就允许20m了) c:WINDOWSsystem32inetsrvMetaBase.xml(企业版的windows2003在第592行,默认为 AspMaxRequestEntityAllowed=204800 即200K 将其加两个0,最大就可以上载20M了。 AspMaxRequestEntityAllowed=20480000 三、解决SESSION丢失的问题。解决办法:一、IIS6中相比IIS5增加了一个应用程序池,默认是使用DefaultAppPool。二、先为站点建立一个应用程序池,打开IIS管理器,右键点击应用程序池新建应用程序池。三、输入你的应用程序池的ID,这里我输入的是localhost,应用程序设置选择第一项,点击确定,可以在应用程序池下看到新建的应用程序池。四、对你的每个站点进行设置,进入站点的属性对话框,点击主目录选项卡,将应用程序池选择为刚才新建的,确定。IIS500内部错误之解决办法IIS 500内部错误之解决办法一.错误表现这个错误发生时总会有三方面的表现:一是IE中的最直接的表现,也是最让人看不懂的表现;二是安全日志中的表现,IWAM_Machine账号登录失败;三是系统日志中的表现,IIS Out-Of-Process Pooled Applications应用程序因启动账号的错误而不能够启动.从而造成ASP页面浏览错误.(一)IE中的表现当浏览器运行以前能够正常运行的asp页面时会出现如下的错误:(1)您要访问的网页存在问题,因此无法显示。 HTTP 500 - 内部服务器错误注意,这儿只是500错误,不是500.xx等错误的,那些错误主要是asp编程问题,与iis没有太大的关系,只有500错误是由iis自身造成的=IIS 500内部错误之错误原因与解决办法) 出现IIS 500内部错误的原因有多个,但最主要的原因是IWAM_MACHINE账号在Active Directory(或SAM),IIS的metabase数据库与COM+组件中的密码不匹配不同步造成的.因此解决问题的关键在于使这三方的密码同步起来.操作如下:1.在本地账号管理器中更改IWAM_MACHINE账号的密码.假设我们改为123456782.使用新的密码重设IIS Metabase数据库.c:InetpubAdminScripts adsutil SET w3svc/WAMUserPass 12345678通常情况下IIS会自动与系统账号等信息同步,但我发现我的机器上ISUR_MACHINE是同步的,但IWAM_MACHINE总是不同步,因此只好自行修改了.3.同步COM+账号密码同样我们要用到IIS的管理脚本synciwam.vbs,这个脚本通常会存在于c:inetpubadminscripts下,上一个管理脚本也在这儿放着.命令如下:cscript c:inetpubadminscriptssynciwam.vbs v -v参数是打开详细模式方法二: 运行regsvr32 jscript.dll和regsvr32 vbscript.dll重新注册JAVA脚本和VB脚本的动态链接库重起后一切正常。IIS服务器排错IIS服务器出错的原因是复杂的。象服务启动失败、IIS进程中断或者站点不能启动这些错误都会在系统日志中记录一个错误事件。不论IIS出现何种错误,在确定排错方案之前,都应先使用事件查看器查阅系统日志所记录的相关事件。某些错误显然是由服务器硬件的损坏而造成的,而另一些由于软件原因造成的错误往往不易察觉。本节就一般性的IIS排错提供指导性的介绍。 重新启动IIS 大多数软件问题可以通过重新启动到方法得以解决。作为IIS 5.0的新功能之一,我们可以在不重新启动计算机的情况下重启IIS服务,甚至相当严重的问题都可以采用这种方法解决。重新启动IIS服务可以强迫系统重置IIS进程的内存空间,故由于内存错误引起的问题可以得到解决。重启IIS的方法主要用于下列情况:网站应用程序瘫痪、且不能有效加以控制;网站应用程序工作不正常或者不稳定。/TD /TR/TABLE重新启动IIS服务的过程中,全部当前连接都不能保留,且重启期间服务器上的全部站点都不能工作。如果重启IIS服务不能解决问题,则重启服务器亦不会有效。 备份/还原IIS 如果世界上存在一个万无一失的服务器安全规划方案,那就是备份。曾经有人指出:一个优秀的系统管理员所做的最重要的三项工作就是:备份、备份、备份。 IIS的实现机制包括一个类似注册表的元数据库:MetaBase,有关IIS本身和站点的配置属性全部保存在Windows 2000和元数据库MetaBase中。因此,只要将相关的注册表和元数据库进行备份,即可保存站点相关的全部配置。即使在删除站点甚至重新安装IIS之后,仍然能够利用备份恢复到原来的状态。 备份IIS的步骤如下:, 1在IIS管理器中展开IIS节点,选择向要备份的计算机。 2单击【操作】菜单,选择【备份/还原配置】。 3在【备份/还原配置】对话框中的【备份】列表中列出全部备份文件。4在【备份配置】对话框中指定新建备份的名称,单击【确定】。 默认情况下,备份文件将保存在 Winntsystem32inetsrvMetaBack目录中。 恢复备份的方法与此类似, 如果服务器重装IIS之后需要恢复备份,则在上述恢复操作的基础上,还应进行额外的操作,步骤如下: 1在命令提示符下,键入cscript.exe X:InetPubAmdinScriptsAdsutil.vbs enum w3svc,此处X是安装IIS的驱动器号。从列出的设置中,查找WamUserName和相关的WAMUserPass的值。 2在控制面板中双击【管理工具】,然后双击【计算机管理】。 3选择【本地用户管理器】,然后单击【用户】。双击【IWAM_computername】用户帐户。键入从以前步骤找到的WAMUserPass值,并单击【确定】。 4在【配置备份名】对话框中,选择创建的备份文件,然后单击【还原】。此时配置将得到完全还原。 TCP/IP排错 TCP/IP协议问题往往是导致IIS不能正常工作的原因。当IIS出现错误但是可以判断IIS服务本身没有问题时,就要考虑是否网络连接出现问题,简单排除网络硬件损坏所造成的问题之后,我们的注意力就应集中在网络协议,主要是TCP/IP协议上。 使用ipconfig工具检查TCP/IP配置 在命令提示行中键入:ipconfig /all并回车,得到详细模式的TCP/IP配置状态,除了基本信息之外,还包括主机名、DNS设置、WINS设置、DHCP设置以及物理地址、节点类型等TCP/IP信息。 如果计算机启用DHCP并使用DHCP服务器获得配置,可以使用ipconfig /renew命令开始刷新租约。也可以使用带/release选项的ipconfig命令立即释放主机的当前DHCP配置。 使用ping命令测试连接 在确认网络连通性的时候,应按照以下顺序进行Ping测试: 1Ping本地循环地址,确定本地TCP/IP配置是否正确。 2Ping本机地址,检验本地IP地址设置是否正确。 3Ping缺省网关地址,检验能否与本地子网之外的主机进行通信。 4Ping远程子网上的主机,检验能否通过路由器进行远程通信。 如果以上Ping命令均能够得到响应,说明TCP/IP配置能够支持网络通信。使用netstat工具显示连接统计 可以使用netstat命令显示协议统计信息和当前的TCP/IP连接。 netstat -a命令将显示所有连接,而netstat -r显示路由表和活动连接。netstat -e命令将显示 Ethernet 统计信息,而netstat -s显示每个协议的统计信息。 如果使用 netstat -n,则不能将地址和端口号转换成名称。 常见的错误如:Microsoft OLE DB Provider for ODBC Drivers 错误 80004005 MicrosoftODBC Microsoft Access Driver常见错误 不能打开注册表关键字 Temporary (volatile) Jet DSN for process 0xb2c Thread 0xce8 DBC 0x718a04c Jet。首先产生该错误的根源是 c:windowstemp目录我自已总认为temp目录没有多大用。在优化系统的时候图省事就将这个目录删除了所以就出现了这样的错误。看了好多的网上的解释解答。都得不到原因。只是说权限不足.但是根源呢?给这个目录加上一个来宾帐号,然后属性设置为完全控制就可以解决了http 500 错误-没有在限定的时间内用 DCOM 注册一、发生缘由:由用户方面报告故障,说是该站点上所有的ASP页面均不能访问。二、初步处理:1、由于以前遇到类似情况,一般是重新启动计算机即可,但此次启动无效;2、由于屏幕显示日志文件已满,而且以前也出现过由于日志文件已满而导致IIS部分非正常运行,故考虑用Admin密码进入系统,清空日志文件的方法来解决该问题;3、出现异常,系统管理员密码不正确,怀疑可能有两点:(1)、由于时间过长,Admin密码忘记;(2)、由于黑软后门等恶意程序导致Admin密码被修改;4、处理解决办法如下:由于该系统仍采用FAT32分区,故用98启动盘启动计算机,找到SAM文件,进行删除,然后进入系统进行清空日志文件操作;进行上述操作后,发现该WEB站点上的静态页面有效,而ASP仍然是错误,错误显示如下:网页无法显示您要访问的网页存在问题,因此无法显示。请尝试下列操作:打开http:/www.*.com主页,寻找指向所需信息的链接。单击刷新按钮,或者以后重试。http500-内部服务器错误internet信息服务技术信息(支持个人)详细信息:microsoft支持三、进一步分析:无法判断故障原因,搜索网上相关内容,找到一篇关于IIS下不支持ASP的解决方案文章;经研究分析,判断故障现象基本类似,原因分析为:主要是由于IWAM帐号IWAM_Myserver的密码错误造成了HTTP500内部错误。相应的解决办法为:统一activedirectory、IISmetabase数据库和COM+应用程序中的密码。相应操作该文章上有详细介绍。查看日志文件,与文章上所描述的现象并不完全一致,本计算机并未有域的设置。系统日志具体描述如下:2003-8-2317:42:59DCOM错误无10010NTAUTHORITYSYSTEMMyserver服务器3D14228D-FBE1-11D0-995D-00C04FD919C1没有在限定的时间内用DCOM注册。2003-8-2317:42:59W3SVC警告无36N/AMyserver服务器未能转入应用程序/LM/W3SVC/1/Root。错误是服务器运行失败。若要获取关于此消息的更多的信息,请访问Microsoft联机支持站点:/contentredirect.asp。应用程序日志具体描述如下:2003-8-2317:55:28COM+错误管理4205N/AMyserver由于在下列系统API错误,COM+服务无法初始化。它通常是由本地计算机的系统资源存储问题引起的。CryptAcquireContext进程名称:dllhost.exe该错误的严重性已导致进程终止。错误代码=0x80090017:提供程序类型未被定义。COM+服务内部信息:文件:.security.cpp,行:617而并未有文章上所描述的“用户名未知或密码错误”之类的信息日志;但基本判断也属于该类型故障。按照文章上所写操作一步一步执行,但发现并未奏效,不知问题出在何处。按照最后提示:把IIS中的“应用程序保护”设置为“低”,再重置IIS,新的问题又出现了,站点上的某些ASP能够显示,但某些ASP页面又不能显示,而ASP聊天室的页面能打开,但显示为“打开数据库失败或错误”;但若把IIS中的“应用程序保护”设置为“中”,则任何ASP页面都无法打开;无语,实在不行,采取文章上所述最后一个办法:重装IIS,步骤如下:先卸载,再打SP3(我打的是SP4),再重装。重新配置启动IIS,发觉故障现象依旧如故。经高人指点,问题根源并非如此,经仔细询问情况,发现曾经删除过SAM(这一现象前面一直没能引起注意)SAM文件是保存用户密码的数据库文件,删除后,所有的用户信息就会丢失,而相应的组信息也会随之丢失,虽然重新登录过系统,系统已经重新建立了SAM文件,也重新安装了IIS,IWAM帐号也已经重新建立,但是,原用户组中的特殊信息却没有被恢复。从这里着手。检查“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个IISOut-Of-ProcessPooledApplications该应用程序的ID号即为3D14228D-FBE1-11D0-995D-00C04FD919C1,很多系统报错找不到应用程序3D14228D-FBE1-11D0-995D-00C04FD919C1之类的错误,就是因为该应用程序未能启动,打开该应用程序的属性,检查标识却为IWAM用户,右键启动,报错。改为管理员后,可正常启动。把IWAM加入本地管理员组中,也可正常启动。确定是因为IWAM用户无权访问该应用程序所致。提出具体解决办法如下:1、修改IWAM_Myserver帐号密码,在“开始”->“设置”->“控制面板”->“管理工具”->“计算机管理”中,“系统工具”->“本地用户和组”->“用户”里面,一个IWAM_Myserver(Myserver为本地计算机名)的帐号内,右键更改密码,更改为一个自定义的密码即可,我们这里假设为“000000”;2、修改IIS内部IWAM_Myserver帐号密码,在c:inetpubadminscrpts目录下(IIS安装默认目录),输入:c:inetpubadminscrpts>cscrptadsutil.vbssetw3svc/wamuserpass000000(此处“0”表示用户自定义的密码)修改成功后,系统有如下提示:wamuserpass:(string)*3、同步com+应用程序所用的IWAM_Myserver的密码,原技术文章上所叙述的办法有两种,我这里采用的为第二种,即“使用IWAM帐号同步脚本synciwam.vbs”也就是在c:inetpubadminscrpts目录下(默认目录)输入:c:inetpubadminscrpts>csriptsynciwam.vbs-v前面都很顺利,但在“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,右键启动IISOut-Of-ProcessPooledApplications,发现仍然报错,没办法重启IIS,发现问题现象依旧如故,检查上面第三个步骤,输入csriptsynciwam.vbs-v命令后,返回的脚本执行情况其中最后一段有一个Error的提示。一段英文,具体文字描述未能保存下来,意思理解为:IIS的原数据库拒绝访问。4、万般无奈,删除IIS的组件包,重新建立之,仍然无效。至此又出现问题了。查看应用程序日志和系统日志,发现错误提示事件ID号依旧为:10010、36、4205上述的三个步骤中,前面两步应该都没有问题,最后一步好象有点问题。根据事件ID号,查找相关资料,找出解决办法如下:在“开始”->“设置”->“控制面板”->“管理工具”->“计算机管理”中,“系统工具”->“本地用户和组”->“用户”里面,确认IWAM_Myserver用户只在GUEST组内,再在“本地用户和组”->“组”里面,右键点击Users组属性,添加进NTAUTHORITYAuthenticatedUsers和NTAUTHORITYInteractive两个用户成员,确定。重复第三个步骤,即在IIS安装默认目录下输入:c:inetpubadminscrpts>csriptsynciwam.vbs-v根据返回的脚本执行情况进行查看,最后那一段的Error已经没有了,将COM+程序的用户改回为IWAM用户,重新启动IISOut-Of-ProcessPooledApplications应用程序,没有再报错了,再重启IIS,检查所有WEB站点服务,故障现象解除!也就是说到了这一步IIS下面的ASP程序才正式恢复重新启动。至此,故障现象全部排除!通过此次故障的排查,得出几点需要注意的:1、事件日志的空间设置稍微放大一些,默认才512K,根据硬盘空间,适当放大一些,避免出现日志文件已满的情况;2、不要随便轻易清空事件日志中的事件记录,很多故障现象需要从这个里面下手找原因;3、所有返回的系统提示信息一定要注意仔细查看;4、IIS中的应用程序保护应为中或高,如为低,则所有ASP页面均以本地系统权限运行,安全性存在问题。5、COM+程序的用户权限和用户启动权限很重要,应注意检查。6、系统默认组有时有重要作用,不能轻易删除或修改。7、系统重要文件(如SAM)不可轻易删除,应尽可能采取妥善的解决方法。如使用外部程序修改注册表或SAM表信息以获得管理员权限。而不要删除该文件。不能使用(未知的);文件已在使用中错误提示:HTTP错误500.100-内部服务器错误-ASP错误Internet信息服务-技术信息(用于支持人员)错误类型:MicrosoftOLEDBProviderforODBCDrivers(0x80004005)MicrosoftODBCMicrosoftAccessDriver不能使用(未知的);文件已在使用中。/index.asp,第5行解决方案:1测试时把MicrosoftAccess关了,在编辑网页时不要打开数据库;不要使用动态数据视图。2在放置数据库文件夹中找找看有没有MicrosoftAccess记录锁定信息的文件,就是扩展名LDB的文件这类文件与数据文件的文件名相同,不过扩展名不同把LDB文件删除,可以解决问题3还有可能是文件访问权限方面的问题,你必须确定你有使用此文件的正确权限,重新设置一下数据库文件的权限,要设置的话,你得确定你存放数据库文件的分区是NTFS。- 4.在Dos命令行状态下分别输入下列命令并按回车regsvr32 jscript.dll (命令功能:修复Java动态链接库)regsvr32 vbscript.dll (命令功能:修复VB动态链接库)然后从新启动,即可恢复5.找到产生连接数据库的那段代码为 MM_XXXXXX_STRING 付值的语句, 添加UID=;PWD= (此段代码一般是在站点的CONNECTIONS文件下)例如: 错误前:MM_XXXXX_STRING = dsn=YYYY; 改正后:MM_XXXX_STRING = dsn=YYYY;UID=;PWD=; 6.解决方法:使用Ms Access里的“工具-数据库实用工具-压缩和修复数据库”来修复db/global.asa。如果修复后还是出错,请查看db目录下是否有global.dbl文件,如果有请删除,如无法删除请结束服务器w3wp.exe进程(win2003)或Aspnet_wp.exe进程(win2000)后再删除。7.原数据库连接语句为:conn=DRIVER=MicrosoftAccessDriver(*.mdb);DBQ=e:webopweropwer.mdb改为:conn=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=e:webopweropwer.mdb 指定的初始化字符串不符合ole db规定Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&Server.MapPath(./jcwcn.mdb)后面的数据库文件路径是相对路径,可以直接移植到服务器空间里。但是我们在这样写串的时候DW会报“不符合OLE DB的规定”的错误。这是为什么呢,难道是软件开发者连着最基本的功能都搞不定?我也疑问了很长一段时间。后来我无意中发现了。原来是因为我们没有把本地驱动程序服务器上的驱动程序和两种写串的方式对应起来其实正确的做法应该如下:Driver=Microsoft access Driver (*.mdb);dbq=E:wwwaspDWjcwcn.mdb这样的串写法要选择使用本地计算机上的驱动Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&Server.MapPath(./jcwcn.mdb)这样写的串,可移直接植到服务器上,这个时候我们要选择“使用服务器上的驱动程序”Microsoft OLE DB Provider for ODBC Drivers (0x80004005) MicrosoftODBC 驱动程序管理器 未发现数据源名称并且未指定默认驱动程序此类错误出现的情况大多是在用DW建立站点时运行到下面的步骤时我们选择了第一项或第二项,如图:1、当选择了第一项时,我们开发的ASP程序是在本地编辑和测试。在应用数据库时建立数据库连接大多采用的是DSN或自定义连接字符串, 用DSN时如图所示:DSN是用ODBC数据源管理器建立。我们知道DSN有用户DSN、系统DSN、文件DSN三种,其中用户DSN与系统DSN只能用于当前机器,不能为别的机器所用。而在用DW建立ASP程序时在上图的第二项只能显示系统DSN,因此当我们将ASP程序上传或到别的机器运行时便会出现上述问题。用自定义连接字符串时如图所示:Driver 指定在没有为数据库指定 OLE DB 提供程序时所使用的 ODBC 驱动程序。DBQ 是指向基于文件的数据库的路径。该路径是在测试数据库文件的服务器上的路径。下面是一个连接字符串示例,它将创建与名为book.mdb 的 Access 数据库的 ODBC 连接:Driver=Microsoft Access Driver (*.mdb);DBQ=d:booktrees.mdb。Dreamweaver 在服务器端脚本中插入该字符串,以便应用程序服务器随后进行处理。当我们将ASP程序上传或到别的机器运行时如果测试的路径与连接字符串的数据库路径不一致时,便会发生上述问题。2 当选择了第二项时,我们开发的ASP程序是在本地编辑,然后上传到远程服务器测试。建立数据库连接也采用的是DSN或自定义连接字符串,不同的是都采用的测试服务器上的DSN或连接字符串。当采用测试服务器上的DSN时同样也只能用系统DSN于是当到别和机器运行ASP程序时,也就产生了同样的问题。当采用自定义字符串时如果测试的路径与连接字符串的数据库路径不一致时,也会发生同样的问题。从以上分析可知,要使自己用DW开发的ASP程序具有可移植性最好采用自定义字符串(也可采用文件DSN但对于初学者用自定义字符串容易些)。其具体情况如下:对于建立站点时选择在本地编辑与测试,可采用此自定义连接字符串: Driver=Microsoft Access Driver (*.mdb);DBQ=d:booktrees.mdb;对于在本地编辑然后上传到远程服务器测试,若要将非 DSN 连接字符串写入位于远程服务器,必须知道该文件的实际路径.如果不知道文件在远程服务器上的实际路径,则可以通过在连接字符串中使用MapPath方法来获取该路径。其自定义连接字符串为: Driver=Microsoft Access Driver (*.mdb);DBQ= & Server.MapPath(/book/book.mdb)Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&Server.MapPath(news.mdb)(使用测试服务器上的驱动程序)如果使用 JavaScript,表达式将基本相同,只是要使用加号 (+) 而不是 & 号来串联两个字符串.操作必须使用一个可更新的查询错误类型: Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。错误信息: Microsoft OLE DB Provider for ODBC Drivers error 80004005 MicrosoftODBC Microsoft Access 97 Driver Operation must use an updateable query. 有几个主要的错误原因: 这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为 ADO由于以下的几个原因而不能够写数据库造成的。 1、最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。 要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为Jet需要在该目录建立一个.ldb文件。 2、第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。 SQL = UPDATE Products Set UnitPrice = 2; Set Conn = Server.CreateObject(ADODB.Connection) Conn.Mode = 3 3 = adModeReadWrite Conn.Open myDSN Conn.Execute(SQL) Conn.Close 注意默认的Mode是设置0(adModeUnknown),它是允许更新的。 3、还有可能是在ODBC管理器中将该DSN的只读选项选中。 4、你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。 5、当你使用了一个从低版本中(如ACCESS7.0)载入到高版本(ACCESS 2000)中的查询时。ADODB.Field (0x800A0BCD) BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。 这个错误是因为从数据库中没有取得记录,而你又当作有记录来使用了RECORDSET数据集造成的。 解决方法:只要在操作记录之前判断一下,如果存在空记录,就终止操作就行了 sql=select * from table where id=&id rs.open conn,sql,1,3 if (rs.eof and rs.bof) then response.write 空记录 else 你的操作 end if Iis5 500错误一.错误表现 iis5的http 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是asp程序不能浏览但htm静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录。 具体如下: (一)ie中的表现 当浏览以前能够正常运行的asp页面时会出现如下的错误: 网页无法显示 您要访问的网页存在问题,因此无法显示。 请尝试下列操作: 打开 主页,寻找指向所需信息的链接。 单击刷新按钮,或者以后重试。 http 500 - 内部服务器错误 internet 信息服务 技术信息(支持个人) 详细信息: microsoft 支持 或者是: server application error the server has encountered an error while loading an application during the processing of your request. please refer to the event log for more detail information. please contact the server administrator for assistance. (二)安全日志记录(2条) 事件类型: 失败审核 事件来源: security 事件种类: 登录/注销 事件 id: 529 日期: 2001-9-9 事件: 11:17:07 用户: nt authoritysystem 计算机: myserver 描述: 登录失败: 原因: 用户名未知或密码错误 用户名: iwam_myserver 域: mydom 登录类型: 4 登录过程: advapi 身份验证程序包: microsoft_authentication_package_v1_0 工作站名: myserver 事件类型: 失败审核 事件来源: security 事件种类: 帐户登录 事件 id: 681 日期: 2001-9-9 事件: 11:17:07 用户: nt authoritysystem 计算机: myserver 描述: 登录到帐户: iwam_myserver 登录的用户: microsoft_authentication_package_v1_0 从工作站: myserver 未成功。错误代码是: 3221225578 (三)系统日志中的记录(2条) 事件类型: 错误 事件来源: dcom 事件种类: 无 事件 id: 10004 日期: 2001-9-9 事件: 11:20:26 用户: n/a 计算机: myserver 描述: dcom 遇到错误“无法更新密码。提供给新密码的值包含密码中不允许的值。 ”并且无法登录到 .iwam_myserver 上以运行服务器: 3d14228d-fbe1-11d0-995d-00c04fd919c1 事件类型: 警告 事件来源: w3svc 事件种类: 无 事件 id: 36 日期: 2001-9-9 事件: 11:20:26 用户: n/a 计算机: myserver 描述: 服务器未能转入应用程序 /lm/w3svc/4/root。错误是 runas 的格式必须是或只是。 若要获取关于此消息的更多的信息,请访问 microsoft 联机支持站点: /contentredirect.asp 。 二.原因分析 综合分析上面的错误表现我们可以看出,主要是由于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:inetpubadminscripts子目录下(位置可能会因你安装iis5时设置的不同而有所变动)。 adsutil.vbs脚本功能强大,参数非常多且用法复杂,这里只提供使用这个脚本修改iwam_myserver账号密码的方法: adsutil set w3svc/wamuserpass password password参数就是要设置的iwam账号的新的密码。因此我们将iis metabase中iwam_myserver账号的密码修改为“aboutnt2001”的命令就是: c:inetpubadminscriptsadsutil 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.v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论