ASP.NET - ORA-04068: 包的现有状态已被丢弃

Posted

技术标签:

【中文标题】ASP.NET - ORA-04068: 包的现有状态已被丢弃【英文标题】:ASP.NET - ORA-04068: existing state of packages has been discarded 【发布时间】:2014-05-08 21:55:23 【问题描述】:

这是 ASP.NET 应用程序,它使用具有全局 const 变量的 Oracle 包。编译此包后,第一个 ASP.NET 请求得到此异常:ORA-04068。我读到这是因为这个全局 const 变量。

请告诉我是否有办法在第一次请求时避免此异常(在 PROD 环境中)?

谢谢

【问题讨论】:

【参考方案1】:

确保您编译规范,即使没有更改。

【讨论】:

【参考方案2】:

如果您有一个 PL/SQL 包,它不仅包含可执行代码,还包含全局变量(常量或可修改),所有数据库会话/连接在编译之前使用该包并在编译之后访问它编译,会收到ORA-04068错误。

新会话不会发生这种情况。因此,避免它的一种方法是刷新所有数据库连接,例如通过回收 IIS 应用程序池。

【讨论】:

以上是关于ASP.NET - ORA-04068: 包的现有状态已被丢弃的主要内容,如果未能解决你的问题,请参考以下文章

包的现有状态已被丢弃

休眠重复查询

ASP.NET 身份:尝试添加具有现有 ID 的用户

如何在现有数据库中实现 ASP.NET Identity 2.0?

asp.net 中 griffin.mvccontrib 包的服务器错误

将 ASP.NET 标识集成到现有 DbContext 中