6

我目前在尝试通过 localhost 访问 .aspx 页面时遇到 ASP.NET 错误。这是错误:

OCIEnvCreate 失败,返回代码 -1,但错误消息文本不可用。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Exception:OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。

堆栈跟踪:

[Exception: OCIEnvCreate failed with return code -1 but error message text was not available.]
   System.Data.OracleClient.OciHandle..ctor(OciHandle parentHandle, HTYPE handleType, MODE ocimode, HANDLEFLAG handleflags) +363
   System.Data.OracleClient.OciEnvironmentHandle..ctor(MODE environmentMode, Boolean unicode) +23
   System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName) +122
   System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions) +135
   System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +36
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +68
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +519
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +104
   System.Data.OracleClient.OracleConnection.Open() +37
   Wilson.ORMapper.Internals.Connection..ctor(String connectString, CustomProvider customProvider) +287

[ORMapperException: ObjectSpace: Connection String is Invalid - OCIEnvCreate failed with return code -1 but error message text was not available.]
   Wilson.ORMapper.Internals.Connection..ctor(String connectString, CustomProvider customProvider) +357
   Wilson.ORMapper.Internals.Context.Init(XmlDocument xmlMappings, String connectString, CustomProvider customProvider, Int32 sessionMinutes, Int32 cleanupMinutes) +92
   Wilson.ORMapper.Internals.Context..ctor(Stream mappingStream, String connectString, CustomProvider customProvider, Int32 sessionMinutes, Int32 cleanupMinutes) +171
   Wilson.ORMapper.ObjectSpace..ctor(Stream mappingStream, String connectString, Provider providerType, Int32 sessionMinutes, Int32 cleanupMinutes) +66
   zedi.DataManager.GetDefaultInstance() in C:\projects\FINE Application Interface\Production\On-site Backlog\Source\Code\DataAccess\ORClasses\Data\DataManager.cs:155
   zedi.DataManager.get_ObjectSpaceGlobal() in C:\projects\FINE Application Interface\Production\On-site Backlog\Source\Code\DataAccess\ORClasses\Data\DataManager.cs:105
   zedi.DataManager.get_ObjectSpace() in C:\projects\FINE Application Interface\Production\On-site Backlog\Source\Code\DataAccess\ORClasses\Data\DataManager.cs:129
   zedi.DataObjects.CompanyBase.RetrieveQuery(ObjectQuery query) in C:\projects\FINE Application Interface\Production\On-site Backlog\Source\Code\DataAccess\ORClasses\DataObjects\Base\CompanyBase.cs:279
   zedi.DataObjects.CompanyBase.RetrieveAll(String sortClause) in C:\projects\FINE Application Interface\Production\On-site Backlog\Source\Code\DataAccess\ORClasses\DataObjects\Base\CompanyBase.cs:78
   maint_inetpub.siteTemplates.updateDeviceTemplate.Page_Load(Object sender, EventArgs e) in c:\projects\FINE Application Interface\Production\On-site Backlog\Source\Code\Websites\maint-inetpub\siteTemplates\updateDeviceTemplate.aspx.cs:47
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436

我注意到它说我有一个无效的连接字符串,但我已经对其进行了测试并且它可以工作。我目前安装了 Oracle 10g Express,在此之前我安装了 Oracle 8i 客户端。在我安装 10g Express 之前它可以工作。

4

5 回答 5

2

我在 oracle 10g 上遇到了同样的问题,从我读到的这个错误似乎意味着 .Net oracle 驱动程序找不到 oracle 客户端。

有各种建议可以解决这个问题,包括检查 PATH 和 ORACLE_HOME 环境变量;如果默认位置 (C:\oracle) 不存在,则在默认位置 (C:\oracle) 重新安装 oracle 客户端;或使用 oracle 的 Oracle Data Provider for .NET (ODP.NET) 而不是 Microsoft oracle 驱动程序 (System.Data.OracleClient)。

然而,以上都没有解决我的问题,所以如果有人有更多的建议,他们将不胜感激!

于 2009-05-13T15:14:31.137 回答
2

我们最近也遇到了这个问题;在我们的例子中,恢复 ORACLE_HOME 环境变量就可以解决问题(OMS10G 的安装不完整,导致系统处于不一致的状态,环境变量注册为 null)。

于 2009-10-06T15:11:15.967 回答
0

我在 Windows 7 机器上体验过。添加 ORACLE_HOME 环境变量并以“windows xp sp3”兼容模式(文件/属性/兼容性)运行使用 oracle 客户端的可执行文件为我解决了这个问题。

于 2010-07-02T09:34:33.213 回答
0

虽然这个问题有点古老,但我会投入我的五分钱。从我在互联网上阅读的内容来看,即使在调用者(登录到 Windows 的用户)没有读取/执行 Oracle 二进制文件的权限时一直配置的环境中也会发生这种情况。

于 2011-08-09T06:40:13.673 回答
0

只需从中删除 System.Data.OracleClient.dll \Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

确保先备份,以防出现任何其他错误

这对我有用。

System.Data.OracleClient.dll或从以下文件夹 替换Windows\Microsoft.NET\assembly\GAC_32\System.Data.OracleClient\v4.0_4.0.0.0__b77a5c561934e089

于 2016-03-29T17:08:52.267 回答