2013-01-11 179 views
2

我必須將某些客戶站點從舊IIS服務器移動到較新的IIS服務器,並且有些站點有麻煩,無法以正確的方式工作,其中大多數人抱怨失敗所謂:用於ODBC驅動程序的OLE DB提供程序錯誤「80004005」

Microsoft OLE DB提供程序的ODBC驅動程序錯誤 '80004005'

[微軟] [ODBC驅動程序管理器]數據源名稱未找到和指定默認驅動程序

我。已經在互聯網上閱讀,這可能取決於缺少授予用戶的權利;其他網站指出Temp文件夾丟失(我無法想象這是正確的)...還有其他幾個「解決方案」。

在服務器上打開everone的權限(如某人所述)不適合我。對每個客戶給予明確的權利也是非常痛苦的(有幾個客戶需要這些權利)。

您是否知道更簡單的解決方案或類似的方法或替代方案?

回答

2

ADODB.connection對象調用.open()方法時,該錯誤幾乎總是由連接字符串錯誤引起的。

例如,採取以下的代碼:

Dim SqlUsername : SqlUsername = "YOURSQLUSERNAME" 
Dim SqlPassword : SqlPassword = "YOURSQLPASSWORD" 
Dim ConnectionString : ConnectionString = "DRIVER={SQL Server};SERVER=YOURSERVERNAME;DATABASE=YOURDATABASENAME;UID=" & SqlUsername & ";PWD=" & SqlPassword 
Dim db 
Set db = Server.CreateObject("ADODB.Connection") 
db.Open ConnectionString , SqlUsername , SqlPassword 

注連接字符串如何包括驅動器識別符,在該示例中是SQL Server中。

在應用程序的某個位置,您將有一個adodb.connection.open()方法被連接字符串調用,您需要找到它,確定正在使用的驅動程序並將其安裝到您的服務器上。

另一件事要記住,有些數據源驅動程序是32位的,如果你運行你的網站在IIS中的64位應用程序池,你需要讓32位對象 - 看到上此相關的問題:Uploading picture after migration from IIS 6.0 to IIS 7.5

1

您的舊服務器定義了一些ODBC DSN(數據源名稱),這就是您的應用程序連接到數據庫的方式。你需要在你的新服務器上定義這些。查看您的服務器的控制面板。

2

我在使用經典asp和IBM DB2 ODBC Driver時遇到了類似的問題。我有兩個網站配置在我的本地IIS 7.5,Connection.Open工作正常,但默認的網站,但它不與第二個網站,根據我的知識和根據每個從stackoverflow sugesions幾次配置更改沒有幫助我在這個案件。

對我來說有效的是啓用(設爲True)32bit應用程序高級設置ASP.NET V4.0經典應用程序池。

Application Pools-->ASP.NET V4.0 Classic--> 
      Advanced Settings--> under General Options double click Enable 32-bit Applications to set to True. 

這個小配置可能會幫助有同樣問題的人。

+0

這是我的解決方案感謝您發佈您的建議 – Fuzzybear

0

找不到驅動程序,因爲這些驅動程序沒有在系統中配置或註冊,當我在本地主機上運行一個asp頁面網站時,我也得到了這樣的錯誤。同一頁面在主機服務器上平穩運行。 要註冊,請轉到Microsoft ODBC Administrator - >系統DSN選項卡 - >單擊'configure'按鈕添加您的驅動程序。希望這可以幫助。

0

對我來說,這只是一個失蹤的「;」在連接字符串的數據庫名稱後

0

可以肯定現在你已經解決了你的問題,但儘管如此,這裏的知識的目的就是可以工作:

在什麼@webaware說請按照下面的步驟您的新服務器上頂:

  1. 進入控制面板
  2. 管理工具
  3. 數據源(ODBC)
  4. 單擊系統DSN選項卡
  5. 單擊添加按鈕
  6. 在客戶端驅動程序中查找並選擇Oracle。
  7. 現在,在數據源名稱,描述,TNS服務名稱和用戶ID

注:向正確的TNS服務名和用戶ID數據庫管理員。您還需要用戶ID來測試您的連接。

  • 點擊測試連接按鈕
  • 輸入您的TNS服務名稱爲服務名稱,用戶ID作爲用戶名和用戶的口令ID
  • 單擊確定按鈕
  • 你現在連接應該是成功的。

    相關問題