我使用NHibernate连接到Oracle数据库。一切都很好,直到我突然开始收到奇怪的Value cannot be null. Parameter name: SafeHandle cannot be null.错误。我不知道我为了得到这个错误而改变了什么,我也不知道它到底意味着什么。谷歌也没有给出结果。下面是完整的堆栈跟踪。有什么想法吗?
当调用BuildSessionFactory时发生错误:
var x = Fluently.Configure()
.Database(OracleClientConfiguration.Oracle10
.ConnectionString(connectionString))
.Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
.BuildConfiguration();
return x.BuildSessionFactory();在System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle System.Data.Common.UnsafeNativeMethods.OCIAttrSet(OciHandle trgthndlp,HTYPE trgthndlp,HTYPE trghndltyp,System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String trgthndlp,UInt32 size,attrtype,OciHandle errhp)的System.Data.OracleClient.TracedNativeMethods.OCIAttrSet(OciHandle trgthndlp,Byte[]属性,UInt32大小,ATTR吸引类型,OciHandle errhp)在System.Data.OracleClient.OciHandle.SetAttribute(ATTR属性,String值,OciErrorHandle errorHandle)在System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName,字符串密码,( System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions上的字符串serverName、布尔integratedSecurity、布尔unicode、布尔omitOracleConnectionName) )在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection、DbConnectionPool池上的对象poolGroupProviderInfo、DbConnectionPool池、DbConnection owningObject)。在System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject,在System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,在System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject),在System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection),在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,System.Data.OracleClient.OracleConnection.Open() at NHibernate.Connection.DriverConnectionProvider.GetConnection() at NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare() at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(Dialect方言,IConnectionHelper connectionHelper( NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory)在NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg,IMapping映射,设置设置,( NHibernate.Cfg.Configuration.BuildSessionFactory() at Models.SessionFactory.CreateOracleConnection(String connectionString),c:\Users\CMENGU\Projects\TNT\Models\SessionManager.cs:line 21 at TNT.SessionManager.InitOracleFactory() in c:\Users\CMENGU\Projects\TNT\TNT\SessionManager.cs:line 29 at TNT.Program.Main() in c:\Users\CMENGU\Projects\TNT\TNT\Program.cs:line 30 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()的System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence,String[] args) 在System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback回调,对象状态,布尔preserveSyncCtx)在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态,布尔preserveSyncCtx)在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,Object状态)在System.Threading.ThreadHelper.ThreadStart()
发布于 2015-03-12 23:22:20
原来,是VisualStudio2015预览版在某种程度上搞砸了与甲骨文库相关的东西,从而导致了这个错误。我不得不重新格式化我的电脑几次,直到我明白了发生了什么。
https://stackoverflow.com/questions/28959325
复制相似问题