程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> 解讀ASP中80004005 錯誤信息

解讀ASP中80004005 錯誤信息

編輯:ASP入門教程

有錯誤信息提示就會很容易找到問題,本文解讀ASP中80004005 錯誤信息。

錯誤信息
Microsoft JET Database Engine 錯誤 '80004005' 未指定的錯誤 (Provider 錯誤)

原因:
權限問題,系統緩存目錄權限不足
解決方法:
把系統盤如 C:\WINNT\Temp 目錄權限加上 Everyone 可讀取權限

錯誤信息
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中的一個表,而這個表卻聯接在一個網絡服務器上。

錯誤信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] 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.

原因:
最可能的原因是 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 版本。

錯誤信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not ??

原因:
這個錯誤有可能是出現在你的計算機上軟件安裝(或則反安裝)的順序上。
如果ODBC的版本不一致的話,就會發生該錯誤。
解決辦法是安裝最新版本的MDAC

錯誤信息:
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

錯誤信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).

原因:
兩個原因:當一個數據庫中包含有分別在不用機器上的許可關系時,
這也可能發生在同一台機器上,當你給一個關系設置了UNC路徑,而另一個關系卻是本地路徑。
錯誤原因是:
當用戶使用IIS匿名帳號登錄後,對本地這台機器而言他是有權的,但是對於一個UNC路徑的機器,
另外這台機器是不會認為你當前匿名登錄的帳號在它那上面也是合法的。
這樣它就不允許你訪問它上面的資源,導致錯誤。

兩個解決辦法:
1. 在IIS工具中,改變IIS匿名帳號成另外一個基於域的帳號。(也就是不使用匿名登錄)
2. 或則在那台你要訪問資源的機器上也創建一個和當前匿名帳號同樣的帳號,使用同樣的密碼。

錯誤信息:
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映射了帳號。

錯誤信息:
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 選項。

錯誤信息:
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

錯誤信息:
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 被使用到另外一台機器上的時候。

錯誤信息:
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.

原因:
查詢太復雜了,對查詢有限制。

錯誤信息:
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 還使用了原來的機器名。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved