打开oledb连接时出现未指定的错误

时间:2014-03-18 07:49:56

标签: vb.net oledb

我在打开oledb连接时收到'未指定的错误'以下是堆栈跟踪详细信息。请帮我找一个解决方案。

[OleDbException (0x80004005): Unspecified error]
   System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +968957
   System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
   System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4863020
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
   System.Data.OleDb.OleDbConnection.Open() +40
   ASP.aboutus_aspx.Page_Load(Object sender, EventArgs e) in C:\Sites\Single17\watchbroker\webroot\aboutus.aspx:22
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

2 个答案:

答案 0 :(得分:2)

  

System.Data.OleDb.OleDbException:未指定错误

此错误主要属于权限错误,对于此错误,我们根据情况有多个解决方案

  1. 将impersonate = false放入web.config文件中。

  2. 如果你想在这种情况下使用impersonate = true,你需要提供读/写权限,以便在" C:\ Documents and Settings \ server name \ ASPNET"上模拟用户。文件夹或通过流程监控实用程序,您可以检查哪个文件没有足够的权限。

  3. 如果您有Windows Server 2008,那么您将找不到ASPNET文件夹并且仍然需要impersonate = true,那么您需要更改IIS 7.5 / 7.0中的配置。

  4. 转到IIS - >选择您的应用程序池 - >高级设置 - >流程模型 - > Identity = ApplicationPoolIdentity

    转到IIS - >选择您的应用程序池 - >高级设置 - >加载用户个人资料=错误

答案 1 :(得分:1)

您提供的细节很少,但是Google提供了错误代码,而oledbconnection出现了this,其答案如下:

  

解决。这与模仿有关。在web.config中,我将impersonate设置为false并且它可以工作。我在这个论坛的另一篇文章中读到,因为当.net读取一个excel文件时,它会创建一个临时文件夹来存储数据,而该临时文件夹只能由ASPNET帐户访问。因此,如果你冒充计算机/网络上的另一个用户并尝试使用ASPNET来读取excel文件中的数据,你将无法做到。