我们正在使用Enterprise Library 6.0和以下代码来创建数据库实例并执行存储过程?任何帮助高度赞赏。在此先感谢。
DatabaseProviderFactory factory = new DatabaseProviderFactory();
Database db = factory.CreateDefault();
DbCommand dbCommand = db.GetStoredProcCommand("ProcedureName");
OracleParameter outval = new OracleParameter("Test", OracleDbType.RefCursor);
outval.Direction = ParameterDirection.Output;
dbCommand.Parameters.Add(outval);
using (IDataReader reader = db.ExecuteReader(dbCommand))
{
while (reader.Read())
{
}
}
<add name="providerConnString" connectionString="Data Source=ABCD;Password=testuser;User ID=testpwd" providerName="Oracle.DataAccess.Client" />
我们间歇性地收到以下异常。当我们在空闲时间之后尝试访问应用程序时会发生这种情况。连接池如何在企业库中发生?如果应用程序长时间处于空闲状态,它将如何工作?什么是默认的最小池大小和默认的最大池大小?
调用目标抛出了异常。 System.Reflection.TargetInvocationException:抛出了异常 通过调用的目标。 ---&GT; System.TypeInitializationException:类型初始值设定项 &#39; Oracle.DataAccess.Client.OracleClientFactory&#39;抛出一个例外。 ---&GT; System.TypeInitializationException:&#39; Oracle.DataAccess.Client.CThreadPool&#39;的类型初始值设定项。抛出一个例外。 ---&GT; System.Runtime.InteropServices.COMException:检索COM类 带有CLSID的组件的工厂 {CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}由于以下原因而失败 错误:800703fa对具有的注册表项进行了非法操作 被标记为删除。 (来自HRESULT的异常:0x800703FA)。在 Oracle.DataAccess.Client.CThreadPool..cctor()---内部结束 异常堆栈跟踪--- at Oracle.DataAccess.Client.OracleInit.Initialize()---内部结束 异常堆栈跟踪--- ---内部异常堆栈跟踪结束 ---在System.RuntimeFieldHandle.GetValue(RtFieldInfo字段,Object实例,RuntimeType fieldType,RuntimeType declaringType,Boolean&amp; domainInitialized)at System.Reflection.RtFieldInfo.UnsafeGetValue(Object obj)at System.Reflection.RtFieldInfo.InternalGetValue(Object obj, StackCrawlMark&安培; stackMark)at System.Reflection.RtFieldInfo.GetValue(Object obj)at System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow) 在 Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDefaultMapping(字符串 dbProviderName)at Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDatabaseData(ConnectionStringSettings connectionString,DatabaseSettings databaseSettings)at Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDatabase(字符串 姓名)at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.b__2(字符串 n)at System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd(TKey key, Func
2 valueFactory)at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.CreateDefault()
答案 0 :(得分:0)
我在IIS中的应用程序池标识用户遇到问题。我删除了身份用户,并放置了默认身份用户。然后恢复为我的自定义用户身份。这解决了我的问题。