我有一个VB应用程序使用.NET 3.5,允许用户上传Excel文件。应用程序然后从该文件读取并将其内容插入到数据库中。OleDB连接到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线84和85的功能READEXCEL的:
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重新启动应用程序后,问题依然存在
- 它似乎并不成为一个权限问题,在服务器上的所有用户组至少具有读取&执行对上传的文件
我可以看看有什么其他方面的差异对于b在生产和本地环境之间?还有什么可能导致打开这个OleDB连接失败像这样?
UPDATE:解决方法似乎是回收IIS中的应用程序池。任何想法是什么,这是重置,修复它?
您的应用程序的应用程序池是作为定义的Windows帐户运行还是作为默认应用程序池用户运行? –
它是一个已定义的Windows帐户和Guests组的成员,它似乎对所述目录具有读取和执行权限。 –
机器和服务器的位数(32/64)是多少? –