我正在使用SalesLogix连接提供程序,它是一个32位驱动程序。当我尝试打开连接时,以下异常引发
System.Data.OleDb.OleDbException (0x80004005(: 没有可用的错误消息,结果代码: E_FAIL(0x80004005(
我在应用程序(Web和桌面(中都使用以下连接字符串
Provider=SLXOLEDB.1;Data Source=TestServer;Initial Catalog=SLXTestApp;User Id=Alex;Password=alex124;Persist Security Info=True;Extended Properties=Port=1706;Log=Off"
当我在桌面应用程序(C#(中使用具有相同连接字符串的相同代码时。它成功打开连接,并且没有错误地获取数据。但是在 4.0 的情况下 asp.net 错误我。
以下是我的应用程序的配置/设置
两个应用程序中的 1 平台目标是相同的,即 x86。
2-我在具有 64 位操作系统
的网络服务器 2008 R2 上使用 IIS(7.5.7600.16385(。3-启用 32 位应用程序在应用程序池中为 true。
4-托管管道模式 = 集成
5-Aspnet 4.0(C#(
SalesLogix OLEDB 提供程序仅为 32 位。您需要在 32 位模式下运行 IIS 网站才能访问数据库。
详情请看这里:http://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx
您似乎已经设置了该设置...但请仔细检查以防万一。
然后:驱动程序是否正常工作?通常的检查是运行SalesLogix LAN客户端(如果尚未安装,请安装它(。可能只是运行客户端安装就可以为您解决问题。
编辑:只是为了在响应中插入此问题的另一个原因(似乎很常见(是运行应用程序池的用户帐户,通常应该是本地系统。