我正在将经典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,并得到相同的错误,所以我相当确定问题不在数据库端。
你检查过生产箱和SQL服务器之间的Windows防火墙和其他防火墙吗?您将需要打开端口1433和1434(可能还有135)。 – Oded 2010-05-26 13:55:14
它实际上使用不同的自定义端口。然而,我相信这不是问题,因为在同一个prod框上有几个ASP.NET应用程序,它们连接到相同的prod SQL框上的数据库,工作得很好。 – BBlake 2010-05-26 14:00:43