OleDB与excel文件的连接仅在生产中失败

时间:2013-01-15 15:08:43

标签: asp.net vb.net excel oledb jet

我有一个使用.NET 3.5的VB应用程序,允许用户上传Excel文件。然后,应用程序从该文件中读取并将其内容插入到数据库中。

问题是我们的PRODUCTION环境中的读取似乎失败了。这是产生的错误:

ErrorMessage: System.Data.OleDb.OleDbException: Unspecified error
   at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OleDb.OleDbConnection.Open()
   at uploader.ReadExcel(String sFile) in E:\path_to_application\uploader.aspx.vb:line 85

这是uploader.aspx.vb中ReadExcel函数的第84和85行:

oConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFile + ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";")
oConn.Open()

oConn.Open()仅在生产中失败,我本地计算机上完全相同的代码库按预期工作。

  • 该文件确实存在于sFile变量
  • 中指定的路径中
  • This question建议超出并发连接限制可能会出现问题,但即使在使用IIS重新启动应用程序后问题仍然存在
  • 它似乎不是权限问题,服务器上的所有用户组至少都有Read&执行上传的文件

我可以在生产和本地环境之间寻找其他哪些差异?还有什么可能导致打开这个OleDB连接失败?

更新:解决方法似乎是在IIS中回收应用程序池。关于什么是重置的任何想法修复它?

1 个答案:

答案 0 :(得分:0)

probackpacker会说如果你的应用程序是在64位环境下它不会工作, 因为没有64位OLEbd驱动器