我在打开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
答案 0 :(得分:2)
System.Data.OleDb.OleDbException:未指定错误
此错误主要属于权限错误,对于此错误,我们根据情况有多个解决方案
将impersonate = false放入web.config文件中。
如果你想在这种情况下使用impersonate = true,你需要提供读/写权限,以便在" C:\ Documents and Settings \ server name \ ASPNET"上模拟用户。文件夹或通过流程监控实用程序,您可以检查哪个文件没有足够的权限。
如果您有Windows Server 2008,那么您将找不到ASPNET文件夹并且仍然需要impersonate = true,那么您需要更改IIS 7.5 / 7.0中的配置。
转到IIS - >选择您的应用程序池 - >高级设置 - >流程模型 - > Identity = ApplicationPoolIdentity
转到IIS - >选择您的应用程序池 - >高级设置 - >加载用户个人资料=错误
答案 1 :(得分:1)
您提供的细节很少,但是Google提供了错误代码,而oledbconnection
出现了this,其答案如下:
解决。这与模仿有关。在web.config中,我将impersonate设置为false并且它可以工作。我在这个论坛的另一篇文章中读到,因为当.net读取一个excel文件时,它会创建一个临时文件夹来存储数据,而该临时文件夹只能由ASPNET帐户访问。因此,如果你冒充计算机/网络上的另一个用户并尝试使用ASPNET来读取excel文件中的数据,你将无法做到。