2010-05-26 90 views
0

我正在將經典ASP Web應用程序遷移到新服務器。數據庫後端正在從SQL Server 2000遷移到SQL Server 2008,並且該應用程序正在從Win2000 x86遷移到Win2003R2 x64。我在應用程序內的每個存儲過程調用中都收到上述錯誤。用於SQL Server的Microsoft OLE DB提供程序錯誤「80040e14」找不到存儲過程

我已經驗證:

  • 是,SQL用戶設置,使用正確的用戶名和密碼,
  • 是,SQL用戶在數據庫
  • 執行對存儲過程的權限是,我已將TypeLib引用更新爲新的UUID。是的,我已通過SSMS使用SQL用戶標識登錄到數據庫,它可以在SSMS中看到並執行存儲過程,但不能從Web應用程序中執行。
  • 是的,SQL用戶將數據庫設置爲其默認數據庫。

最令人沮喪的是它在DEV服務器上正常工作,但不在生產服務器上。我經歷了每次IIS設置5次或6次,並且在兩種環境中都設置了完全相同的Web應用程序。唯一的區別是連接字符串中的數據庫服務器名稱(DEV vs prod)

編輯:我也試過在dev數據庫服務器上指向prod web box,並得到相同的錯誤,所以我相當確定問題不在數據庫端。

+0

你檢查過生產箱和SQL服務器之間的Windows防火牆和其他防火牆嗎?您將需要打開端口1433和1434(可能還有135)。 – Oded 2010-05-26 13:55:14

+0

它實際上使用不同的自定義端口。然而,我相信這不是問題,因爲在同一個prod框上有幾個ASP.NET應用程序,它們連接到相同的prod SQL框上的數據庫,工作得很好。 – BBlake 2010-05-26 14:00:43

回答

0

你確定你真的連接到你認爲你的實例和數據庫(在App中)嗎?它只會在連接字符串中使用錯誤的數據庫來覆蓋用戶的默認數據庫。

您可以執行類似的連接部分內嵌SQL:

SELECT @@SERVERNAME AS SERVERNAME 
    ,DB_NAME() AS [DB_NAME] 
    ,CURRENT_USER AS [CURRENT_USER] 
+1

是的,我是個白癡。該應用程序連接到SQL框上的兩個不同的數據庫,並且我以一種複製/粘貼愚蠢的方式將global.asa文件中的兩個連接字符串都設置爲相同的名稱,因此它爲每個連接使用第二個連接字符串。找不到存儲的特效,因爲它正在查看錯誤的數據庫。謝謝.... – BBlake 2010-05-26 14:29:49

+1

@BBlake我們都是白癡 - 這就是我們來這裏的原因。 – 2010-05-26 14:31:29

0

這可能是模式。您是否在您使用的數據庫中設置了用戶的默認模式?

相關問題