属于流动资产的项目有:网站留言板时通时关,不知是什么原因?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 04:05:13
网站上有一留言系统,经常性的出现这个问题:有时可以打开,有时打不开!不知是空间问题,还是程序问题呢?
打不开时有时会出现这样的提示:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft] [ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字'Temporary (volatile) Jet DSN for process 0x614 Thread 0x234bfd4 Jet'.

/message/bkconn.asp,行4

首先,我们要了解80004005 errors是什么意思?它的意思是“因为某些原因不能从数据库中取得数据”。
在这篇文章,我列出了80004005 errors的各种信息,引发这种错误最常见的原因以及它们的解决办法.
1.Access 97
----------------
数据库引擎不能打开文件’(unknown)’.它已经被其他用户以独占方式打开,或者你没有查看数据的权限.
不能连接已经在使用的’(unknown)’文件.
’(unknown)’还说明数据库文件不是一个有效的路径,因此你要确定路径拼写正确,以及数据库文件在当前连接的服务器上。
数据库文件不能加锁。
不能打开注册键“DriverId”.

SQL SERVER
----------
[DBNMPNTW] ConnectionOpen (CreateFile()).
[DBNMPNTW] ConnectionWrite (GetOverLappedResult()).
[DBMSSOCN] 一般性网络错误,检查网络连接文档.
Logon Failed() 登录错误
Login failed- User 没有定义一个可以连接SQL Server的信任用户。
查询或查看数据超过16张表的限制.

BOTH
----------
数据源的名称没有找到或没有指定默认的驱动器名.
INSERT INTO语句语法错误.

其它错误消息的疑难解答:
概要
本文详细讲述了 Microsoft 数据访问组件 (MDAC) 收到 0x800040005 错误的一些常见原因,MDAC 包括 ActiveX 数据对
象、OLE DB 和远程数据服务 (RDS)。 同时,本文还讨论了其它一些错误消息,包括 80040e21、80040e14 和
80040e10。

更多信息
80004005 错误消息可归纳为:“出于某种原因,我无法访问您的数据”。 本文给出了各种 80004005 错误消息的列表、
其中列举了这些错误消息的最常见起因及其疑难解答步骤。 虽然本文假定您是在 Active Server Page (ASP) 页面
(.asp) 中使用 ActiveX 数据对象 (ADO),但这些起因和很多疑难解答步骤同样适用于任何其它通过 ODBC 访问数据的环
境。
错误消息列表
这一节我们介绍了各种错误消息的文本,以及导致错误的原因。
错误消息
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.
原因
该错误的发生,通常是因为 Internet Information Server (IIS) 所使用的帐户(通常是 IUSR)没有正确的 Windows
NT 权限,因而无法访问基于文件的数据库或包含文件的文件夹。
请检查这些文件和文件夹的权限设置。 确认您能够创建和/或删除任何临时文件。 临时文件一般都创建在与数据库相同的
文件夹下,但也可以创建在其它文件夹下,如 /Winnt。
您可以使用 Windows NT 文件监视器来检查访问文件失败的原因。 Windows NT 文件监视器可从以下 Web 站点上得到:
http://www.sysinternals.com
如果您使用的是该数据库的网络路径(UNC 或映像驱动器),请检查共享、文件及文件夹上的权限。
确认文件及数据源名 (DSN) 没有被标记为独占方式。
简化。 使用一个使用本地驱动器号的系统 DSN。 如有必要,把数据库移至本地驱动器,然后对其进行测试。
错误消息中的 other user(其它用户)有可能是 Visual InterDev。 请关闭任何包含该数据库数据连接的 Visual
InterDev 工程。
错误也可能是由委派问题引起的。 检查可能存在的任何身份验证方法(“基本”而不是 NTLM)。 如果连接字符串使用的
是统一命名约定 (UNC),请尝试使用“基本身份验证”或一个绝对路径,如 C:\Mydata\Data.mdb。即使 UNC 指向的资源
位于本地 IIS 计算机,前述错误也有可能发生。
当访问链接到某个表的 Microsoft Access 数据库时,如果这一表处在网络服务器上的 Access 数据库中,这一错误也有
可能发生。 这种情况下,请参见以下 Microsoft Knowledge Base 文章以找到可行的解决方法:
Q189408 PRB: ASP 无法访问 IIS 4.0 下的网络文件
错误消息
Microsoft OLE DB Provider for ODBC Drivers error ’80004005’ [Microsoft][ODBC Microsoft Access 97 Driver]
Couldn’t use ’(unknown)’; file already in use.
原因
数据库无法正确地为多个用户锁定。 详细信息请参见以下 Microsoft Knowledge Base 文章:
Q174943 PRB: 80004005“Couldn’t Use ’(unknown)’;File Already in Use”
错误消息
Microsoft OLE DB Provider for ODBC Drivers error ’80004005’ [Microsoft][ODBC Driver Manager] Data source
name not found and no default driver specified.
原因
最常见的原因是因为 Global.asa 和 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>
另一个常见原因是因为所使用的连接字符串中有太多的空格。
DSN = MyDSN; Database = Pubs;
尝试使用下面的语法代替:
DSN=MyDSN;Database=Pubs;
如果 Global.asa 文件没有激发,请检查并确认它是在 IIS 4.0 的应用程序根下,(如果运行的是 IIS 3.0,则应在虚拟
根下,并且 Execute 复选框已经选中)。 此外,当 Windows NT 权限限制了对文件夹的访问时,程序设计中的一个错误
也可能会妨碍 Global.asa 文件被激发。详细信息请参见 Microsoft Knowledge Base 文章: Q173742 “BUG: 限制
Web 访问时,Global.asa 不被执行”
无法找到 DSN 名。 请检查并确认没有使用“用户”类型的 DSN。
如果使用的是文件 DSN 或系统 DSN,则尝试把连接字符串相应地改为 DSN=MySystemDSN 或 DBQ=MyFileDSN。 简化!
检查并确认安装了最新的驱动程序。 如有您不能肯定,请从以下 Web 站点下载最新的 MDAC(Microsoft 数据访问组
件):
http://www.microsoft.com/data/
错误消息
Microsoft OLE DB Provider for ODBC Drivers error ’80004005’ [Microsoft][ODBC Driver Manager] Data source
name not ??
原因
这个问题看起来与计算机上软件安装或卸载的顺序有关。 如果 ODBC 内核文件不同步(它们必须为同一版本),就可能出
现这种错误。
请从以下 Web 站点下载最新版的 MDAC(Microsoft 数据访问组件),以升级所有的 ODBC 核心驱动程序:
http://www.microsoft.com/data/
错误消息
Microsoft OLE DB Provider for ODBC Drivers error ’80004005’ [Microsoft][ODBC Access 97 ODBC driver Driver]
General error Unable to open registry key ’DriverId’.
原因
这一错误是由从注册表中读取数值时引起的。 请用注册表编辑器 (Regedt32.exe) 检查注册表项上设置的权限。 您也可
以用 Windows NT 注册表监视器 (NTRegMon) 来检查注册表读取失败。 NTRegMon 可从以下 Web 站点下载:
http://www.sysinternals.com
错误消息
Microsoft OLE DB Provider for ODBC Drivers error ’80004005’ [Microsoft][ODBC SQL Server Driver][dbnmpntw]
ConnectionOpen (CreateFile()).
原因
这一错误有两种原因。 它们都与权限有关,或者数据库与 Web 服务器不在一台计算机上,或者数据库正通过 UNC 路径
(\\Server\Share) 被引用。 即使数据库与 Web 服务器位于同一台计算机上,UNC 路径也使 Web 服务器认为数据库好象
位于网络上的另一台计算机上。
如果 .asp 页面正被匿名用户所访问,就会发生以下情况:
IIS 将使用(默认)Windows NT 帐户:
USR_<machinename
>。
因为该帐户是 Web 服务器的本地账户,所以网络上的其它计算机根本无从得知该帐户。 当 IIS(在 IUSR 帐户的安全环
境下运行)试图访问远程计算机上的任何资源时,远程计算机将验证其使用的帐户。 由于 IUSR 帐户是本地帐户,因此对
于远程计算机来说,它是无从得知的,所以访问被拒绝。
当匿名访问引发这个问题时,有两个解决办法:
在“Internet 服务管理器”工具中,从 Web 属性下将匿名登录帐户从默认的本地帐户改为一个基于域的有效帐户。 在用
户名字段中,输入要使用的域帐户,格式为 domain\userid。 这样,远程计算机就能用域控制器来验证 IIS 传递给它的
安全凭据。
-或者-
在包含您想要访问的资源的远程计算机上复制的帐户
IUSR_<machineaccount
>
。 如果帐户是在远程计算机上创建的,包含完全相同的名称和密码,Windows NT 把它们视为等价帐户。
-或者-
如果 .asp 页面只允许经身份验证的访问,请参考以下内容:
如果页面不允许匿名访问,IIS 将会试图验证作出请求的用户的身份,并使用其安全凭据控制其所有活动,如访问数据库
的活动。 下面对这种情形下失败的两个主要原因做了说明。
默认情况下,IIS 被配置为以 Windows NT Challenge/Response 作为其身份验证方法。 由于 Windows NT 4.0(及更早版
本)安全模型的限制,经过 Windows NT Challenge/Response 身份验证的用户也无法访问远程计算机上的资源。 这通常
称为委派问题。 要验证是不是这种情况,可在“Internet 服务管理器”工具中,从 Web 属性下选择基本(明文)复选
框,然后清除 Windows NT Challenge/Response。 如果这一步骤解决了问题,很明显这是一个委派问题。
-或者-
如果问题仍旧存在,可能是所使用的用户帐户没有正确的 SQL Windows NT 计算机权限。 不妨尝试使用一个明确拥有该
SQL 计算机访问权限的帐户。
有关委派、IIS 如何通过身份验证来保护 Web 站点,以及相关问题的详细信息,请参见文章“IIS Authentication and
Security for Internet Developers”