用于SQL Server的Microsoft OLE DB提供程序错误“80040e14”找不到存储过程

时间:2010-05-26 13:51:55

标签: sql-server web-applications asp-classic

我正在将经典ASP网络应用迁移到新服务器。数据库后端正在从SQL Server 2000迁移到SQL Server 2008,应用程序正在从Win2000 x86迁移到Win2003R2 x64。我在应用程序中的每个存储过程调用上都收到了上述错误。

我已经确认:

  • 是的,使用正确的用户名和密码
  • 设置了SQL用户
  • 是的,SQL用户对数据库中的存储过程具有执行权限
  • 是的,我已将TypeLib引用更新为新的UUID
  • 是的,我已经通过SSMS使用SQL用户ID登录数据库,它可以在SSMS中查看和执行存储过程,但不能从Web应用程序中查看和执行。
  • 是的,SQL用户将数据库设置为其默认数据库。

最令人沮丧的是它在DEV服务器上运行良好,但在生产服务器上运行不正常。我已经完成了每次IIS设置5到6次,并且在两种环境中Web应用程序的设置都完全相同。唯一的区别是连接字符串中的数据库服务器名称(DEV vs prod)

编辑:我也尝试将prod web box指向dev数据库服务器并得到相同的错误,所以我很确定问题不在数据库端。

2 个答案:

答案 0 :(得分:0)

您确定自己确实已经连接到您认为自己的实例和数据库(在应用程序中)吗?它只需要连接字符串中的错误DB来覆盖用户的默认数据库。

您可以在连接上执行某些内联SQL,例如:

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

答案 1 :(得分:0)

可能是架构。您是否在正在使用的数据库中设置了用户的默认架构?