找回密码
 入住遨海湾
搜索
网站解决方案专享优惠-3折上云
查看: 1351|回复: 0

ASP 中常见的错误 80004005 信息

[复制链接]
发表于 2008-2-1 00:47:00 | 显示全部楼层 |阅读模式

登录后查才能浏览下载更多咨询,有问题联系QQ:3283999

您需要 登录 才可以下载或查看,没有账号?入住遨海湾

×
错误信息 ! Y6 y( ]" V6 N0 aMicrosoft JET Database Engine 错误 '80004005' 未指定的错误 (Provider 错误)+ Z/ g& k {# n; ?0 J4 X# m$ G( E ( G6 ~8 h; |) u- F" b3 E 原因:8 ~) ^: ]6 [+ C0 k4 q. _# C; p 权限问题,系统缓存目录权限不足 . L% g5 J# z! q2 \& i8 o2 B8 F解决方法: , y" ]* p, F7 H1 g把系统盘如 C:\WINNT\Temp 目录权限加上 Everyone 可读取权限; u5 L; \: F0 \) O/ P 5 ~, a8 R7 P9 f- b; b错误信息8 m9 ?3 r$ B9 p/ \, {% e Microsoft OLE DB Provider for ODBC Drivers error '80004005' : q, ~6 [' W2 m& R2 R[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database + z, y D6 u; {/ P E! v8 Sengine cannot open the file '(unknown)'. It is already opened exclusively & ^+ B- E5 O* z$ L by another user, or you need permission to view its data. ; z! m! N, x/ F4 e8 o 8 |3 T# n! R) N8 g/ D8 J 原因: " q7 Q1 m" \: F5 Y. S 这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录 $ l: ^: a' E, o. N) a 没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说) 0 H1 d% L; j3 S g6 z 检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。 # A S5 M2 Z% w4 B- j这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件 & L) P n+ E" y 也可能建立在别的目录,例如 /Winnt. 3 I. E) [( C: ~: W; A ; t- z! l! V; ^4 V& A使用NT的文件监视程序监视文件失败时到底是访问了什么目录。 - Z! L# X' _* q4 D. j7 m6 S+ q这个NT的文件监视程序可以在这个地方下载 http://www.sysinternals.com. # {6 ?7 m8 u( z' Y3 s% R, T! ^ " V! s' q6 s5 t4 S# G# i: B k如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限, . y$ ]" k. \5 r: v) m$ o4 d5 c$ r ! A# w7 Q' h5 p- Y5 V 还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中, , O3 L' e9 {% n4 ?这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。 , P) F; [. x+ Q$ ^7 ?, r) r5 f- f N# Y 这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用 2 _8 y* b2 B3 L0 c2 ~, V 本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。 5 H _, z3 }3 M. P7 d) L- c& `还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。 6 a1 o; m/ n$ J/ G ! V; t5 W9 T" Q/ f! K# u错误信息: ! ?( S( X9 i8 ?! N Microsoft OLE DB Provider for ODBC Drivers error '80004005' , o9 S7 w. c! S [Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file / {. @+ J' | b% C9 \' t1 T T2 f+ Jalready in use. , `+ }; w2 n. x2 O% s% s I , G2 F# u* x* V2 K7 W/ L7 J- |! q原因: ; M/ W* S1 C9 Y- D+ C8 S8 i 多人使用时数据库被锁定。 + C4 m0 ?3 M+ B7 _, H/ s ) p* y* l; ~" A1 V1 c& u ]错误信息: & P8 ?$ M! _2 j* l$ y Microsoft OLE DB Provider for ODBC Drivers error '80004005' 4 h2 x, E9 ^' ^$ I# B+ l [Microsoft][ODBC Driver Manager] Data source name not found and no default 0 l m* D, o2 R& v driver specified. ! R9 a. |/ k' h) T; t z! z3 I1 F6 X' H; e- V; e 原因: % P7 I) j# e* H0 q! E/ ?2 A% K" ^最可能的原因是 ConnectString 是一个在 global.asa 中初始化的 Session 变量 ,但是 global.asa # ~+ S) |; H1 m$ b) J, ]$ ` 却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码) " q1 f$ T" p, Y6 p( w . A4 t/ R0 H* Z0 E& \- o9 l) o <%= "'auth_user' is " & request.servervariables("auth_user")%> - ~' ~ o8 c$ ^& d2 h<P> 8 o9 O" O2 v( g+ B u% O<%= "'auth_type' is " & request.servervariables("auth_type")%> ) r$ y& y% u/ b3 K& m5 w <P> % J( e+ F A$ m! {4 }1 \<%= "connection string is " & session("your_connectionstring")%> 5 V* L* n1 K: U$ o/ `+ R. ?: a$ d<P> . |2 w7 L2 h% z; \! s) p0 K' }8 } 1 m6 S0 `8 E" y还有一个原因就是你在你的 ConnectString 中加入了多余的空格,例如 4 f5 z. E+ ?. ]" ~ DSN = MyDSN; Database = Pubs; 7 Z, B0 U N/ J# d5 B& t7 s3 b试试改成下面这个样子: 0 n" M) |# v, ]) y3 n3 W% m9 SDSN=MyDSN;Database=Pubs; ; C5 Q h* E: c 5 I/ ?. w" d2 _8 t 如果是 global.asa 还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。 0 B0 S) w9 j, Z; v, O ( u& [) U- R& m% X4 z 还有可能错误出现的原因是 DSN 名称没找着,这可以采用我提供的 id=36767 的办法解决。 2 t. r( l8 X+ U 最后是检查是否安装了最新的驱动程序,既是否是最新的 MDAC 版本。 * E& t# k; g: ]* s- f 5 q* V* x1 ~ ~) ?错误信息 ' Y/ S; _. G4 A( M! ~9 v* m( HMicrosoft OLE DB Provider for ODBC Drivers error '80004005' J8 W9 B2 `; {3 v7 e1 S; V [Microsoft][ODBC Driver Manager] Data source name not ?? 8 R: c' V, N; [( G8 W0 y% e3 a+ m / I* V5 V1 ^' S0 q原因: $ T: n* _6 Y O! ^这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。 1 c- V ]" K/ h: L: B如果ODBC的版本不一致的话,就会发生该错误。 ; I, J1 f9 ~& c- I/ Y 解决办法是安装最新版本的MDAC ; Y) t. X6 N7 V" l J9 c2 W7 p3 M' q错误信息: 5 n( a/ b% Q8 Q% ?- h Microsoft OLE DB Provider for ODBC Drivers error '80004005' 7 T; K$ Q, X8 ~ [Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open ) h9 s7 h* Q% Qregistry key 'DriverId'. . Z- H/ g8 t& b . E8 i! d- }- F) }" L3 B原因: 2 d; T! c) C$ ]这个错误发生在爱从注册表中读取数值的时候。 使用regedit32.exe检查你的注册表的权限。 2 a' w6 D& z1 \4 D6 i2 g' V1 A# w* H你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。 该程序到这找:http://www.sysinternals.com 5 _% J* |# W n+ d" N1 V! @5 P+ T 8 A; T9 ]/ Y8 c/ m2 f! F9 G% ^$ N错误信息: - `& T8 n' W* r Microsoft OLE DB Provider for ODBC Drivers error '80004005' * ~+ E) F. |$ \# t[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()). - a: m U( ~" g( t ) f0 q7 X( u1 G: O- o& q原因: A& |# I( K; ~* o5 T7 Z9 _两个原因:当一个数据库中包含有分别在不用机器上的许可关系时, 1 p# G* M8 O% A: S0 O这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。 ) r! H- [: v4 S+ J 错误原因是: 6 O M( [$ z& @# K 当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器, * k4 M8 X/ i& ?, e/ j0 ] 另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。 w$ ]6 T% i7 P8 m: }9 m 这样它就不允许你访问它上面的资源,导致错误。 ) ?) V( W0 m) p- N4 j* w* d - l6 z+ A' w2 k! i! L. B4 Q两个解决办法: 1 y) p* e [' I% K, H( Q3 _% x2 Y% H 1. 在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录) ) \4 Z% o7 ? ?& [6 l) B; M 2. 或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。 3 V$ \) D8 T4 \" [/ V# G% B) d W& `( a4 s% F+ T 错误信息: 2 u+ }, e ~4 H( k. eMicrosoft OLE DB Provider for ODBC Drivers error '80004005' Microsoft][ODBC 6 M3 H; _; k; N& Q* w, W Microsoft SQL Driver] Logon Failed() / s+ w4 ]) I9 l0 m# V 5 z* c) T9 W+ J% {- u2 P原因: " V" |5 ~9 p2 m5 N9 F7 Y4 X6 L$ ^: T该错误是由 SQL Server 产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录, * j6 ~9 w0 ?! C9 }也可能是在NT中没有SQL影射帐号造成的。 $ C W1 L* y ~( f 6 F# B) K& {2 K& x0 @, j( Z使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用 CoonectString 而不能够使用DSN文件。 ) C7 H8 K/ n6 ?: { 因为DSN中没有保存用户名和密码。 * M; L# Q$ I/ n/ R 检查NT是否给SQL映射了帐号。 1 ]. I4 s9 W+ r6 P5 y 4 z" F% M8 E$ o8 X0 H* l) U错误信息: 0 Y; |4 K3 g+ L% O0 f2 Q Microsoft OLE DB Provider for ODBC Drivers error '80004005' ( D q5 R0 f! h8 T% B% X; {' l, S [Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason: 4 j% Q& {+ L7 M! S7 kNot defined as a valid user of a trusted SQL Server connection. ' B3 M+ V5 w. R H 3 J) X6 M& c0 y( M/ b' ~! J原因: $ @+ Q* a5 T" p2 D. x5 d原因同上。 ; Y+ S6 Q: M/ U, Z# m, r6 m 试试这个办法:在 SQL Server 的 Enterprise Manager 中,选择 Server/SQL Server/Configure[ASCII & `; E/ k- ?4 @% Q 133]/Security Options/Standard. 3 P+ ^+ @0 ~& X0 f$ ] 如果是运行在 IIS4 中,取消选择该项目的 Password Synchronization 选项。 f5 O5 ~3 f7 J+ n( i" [ 4 ^1 i7 q$ h- E$ }2 P G 错误信息: 0 u. K8 J, W! k3 K1 B* a9 A0 Y Microsoft OLE DB Provider for ODBC Drivers error '80004005' ! Q; R: I' B: e. X7 l! s4 b/ ^ [Microsoft][ODBC Microsoft Access 97 Driver] Couldn't lock file. 7 I9 Z# q: {8 c- w ' n! v+ [4 J' j2 j1 s5 H原因: 5 v; Y+ b5 ^9 j( q- W/ r2 ? 也许是没有正确的权限生成Access数据库的锁定文件(.ldb) " R/ S0 g* V7 }1 J! W( x 默认时,该文件和你的数据库是同一个目录的。 4 z+ [8 P# b( C1 n2 @2 Q! ^给匿名帐号全权访问数据库共享目录的权限。 # y- g- u* \" W3 }. t 1 b+ q2 w" ^: j3 f" m 有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。 [ r) ?+ k" b0 r$ x7 t+ oSet Conn = Server.CreateObject("ADODB.Connection" ) M; m2 C$ q' X- N/ h7 K8 u6 H1 n5 nConn.Mode = adModeShareDenyWrite '8 " W" W( V+ U. P( C ; {9 W& V. _% j1 r" Z: c- W( D: b 错误信息: , ]! G: e' E/ F5 \ Microsoft OLE DB Provider for ODBC Drivers error '80004005' 9 b- q# D! d2 D$ \% o+ S1 `% o [Microsoft][ODBC Microsoft Access 97 Driver] '(unknown)' isn't a valid 1 R) k" U3 l o) t3 }$ v, C: w% Wpath. Make sure that the path name is spelled correctly and that you are / g) e4 D/ A" ^9 O# M+ \5 E$ ]connected to the server on which the file resides. " B1 v1 `9 s6 a4 X; i 3 [& m1 m3 U3 m p' o5 M原因: 2 ?2 k% K( w$ A( Q" }$ ^8 `5 _ 路径非法。最可能发生在当 Global.asa 和 CoonecntString 被使用到另外一台机器上的时候。 2 i" `* |6 N+ G- R% [ J; @! H- Q a% E; l# a( P9 [错误信息: ' Z1 ~. ]' m# s# \1 R; B0 ? Microsoft OLE DB Provider for ODBC Drivers error '80004005' . H, H( A, K: N- P! _[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in 9 d8 z7 [3 M6 `- k0 S. t; @ it exceed the limit of 16 tables.; F1 J l3 M; V6 r: S( | - j& \* e4 Z! J( b- l原因: " I, p$ ~" m! r/ d: @" p+ {, W查询太复杂了,对查询有限制。 ! |9 R! t4 j1 }5 ?+ w8 ?/ h" t - y6 I2 l7 d6 p错误信息: " K( ^# t* _) H7 ` j5 J Microsoft OLE DB Provider for ODBC Drivers error '80004005' 9 ]) M S7 q' Q8 C1 V) j. ^+ F[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check ) m3 i3 V; ^. H# \' |7 k7 g( \+ Zyour network document 5 V2 R* ?7 M9 L" Q % t* _8 A7 _1 ~) k( N 原因: / I7 v$ x' C- `. c/ p 当装有 SQL Server 的机器改名的时候。但是 DSN 还使用了原来的机器名。
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

网站解决方案专享优惠-3折上云

QQ|手机版|小黑屋|遨海湾超级社区

GMT+8, 2025-4-25 02:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表