Asp.net ORA-22337:已访问对象的类型已在应用程序中演变

Asp.net ORA-22337:已访问对象的类型已在应用程序中演变,asp.net,oracle,odp.net,user-defined-types,Asp.net,Oracle,Odp.net,User Defined Types,设置:ASP.Net应用程序与Oracle后端,我们使用用户定义类型(UDT)并使用ODP.Net在前端和后端之间进行通信 问题:我必须更改我的一个UDTs属性长度,一旦我这样做并在后端进行测试,它工作正常,但当我运行我的网站时,我不断收到ORA-22337错误(在主题行中) 如果你在网上研究这个问题,你不会发现太多,除了无用的Oracle错误文档之外,你不会发现任何有用的东西。Oracle文档中说要关闭并重新打开连接,但这不适用于我的场景 我已经通过删除并重新创建UDT和NTs解决了这个问题,

设置:ASP.Net应用程序与Oracle后端,我们使用用户定义类型(UDT)并使用ODP.Net在前端和后端之间进行通信

问题:我必须更改我的一个UDTs属性长度,一旦我这样做并在后端进行测试,它工作正常,但当我运行我的网站时,我不断收到
ORA-22337
错误(在主题行中)

如果你在网上研究这个问题,你不会发现太多,除了无用的Oracle错误文档之外,你不会发现任何有用的东西。Oracle文档中说要关闭并重新打开连接,但这不适用于我的场景


我已经通过删除并重新创建UDT和NTs解决了这个问题,但这是低效的每次我需要修改我的一个核心UDT时都要做,有没有办法在不删除并重新创建所有内容的情况下解决这个问题?

如果错误信息显示“关闭并重新打开连接”作为解决方案,您使用的OracleConnection中有一个连接池,那么简单地关闭()连接是不够的。它将返回到仍然打开的池中,当您“重新连接”时,您将再次获得它。您需要关闭所有打开的连接,然后调用ClearPool(),以确保池中的所有旧连接都已删除。

是否使用Visual Studio中的自定义类代码生成向导与这些UDT进行交互?如果是这样,您可能需要重新生成该类。。我可以调查一下。还有,为什么你说关闭和重新打开不适用于你?您正在使用OracleConnection池吗?您可能需要刷新池。嗨@ChristianShay,我有一个超级类(我自己的类)来处理映射(基于生成的自定义类构建),您能否详细说明这可能导致问题的原因?我可能需要更多关于池的信息,我想它会自动创建并通过连接关闭,如果不是,我该怎么做?我需要与我的DBA交谈吗?如果错误信息显示“关闭并重新打开连接”,而您使用的OracleConnection中有一个连接池,那么简单地关闭()连接是不够的。它将返回到仍然打开的池中,当您“重新连接”时,您将再次获得它。尝试在ODP.NET连接字符串中设置“pooling=false”,然后关闭ASP.NET服务器并重新启动它。然后看看你是否还能重现整个过程。不过,你需要小心-如果你没有真的关闭web服务器,并且连接保持活动状态,你就不会证明任何事情。我会尝试一下,并将结果发布在这里。thankshey@ChristianShay我们的支持团队正在迁移到一个新的服务器,一旦发生了问题,问题就消失了,所以我认为你是对的,服务器端的连接信息上仍然挂着导致问题的东西,如果您将您的建议作为答案发布,我将很乐意接受。谢谢