在ASP中常見的錯誤80004005資訊和解決辦法

來源:互聯網
上載者:User
錯誤資訊(錯誤資訊我不用翻譯成中文了吧,呵呵,大家諒解)  
  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還使用了原來的機器名。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.