【发布时间】:2018-05-30 07:13:34
【问题描述】:
我不确定我问的问题是否准确,但如果你知道答案,那么你可能会明白我在问什么。
我更新了一个存储过程并在 dev 中进行了测试,没有问题。所以然后我更新了生产中的过程,它导致了错误。我花了一点时间弄清楚发生了什么,因为我所做的只是选择列表中的一个字段,从 i.Price 到 Price = coalesce(r.Price, i.Price)。最终我发现唯一的区别可能是 r.Price 是十进制值,而 i.Price 是货币值,因此该字段的返回类型已更改。
通常这对于 c# 代码应该无关紧要。无论哪种方式,DataReader 值都可以转换为十进制。但是我要修复错误所要做的就是重置应用程序池,然后它就可以工作了。我相信我也可以更新我的查询以转换为货币类型,这可能也可以。
我知道我之前遇到过几次此类问题,足以知道在 asp.net 和/或 sql 程序集的底层进行了某种缓存。
我的问题是,如何在不回收应用程序池的情况下刷新此缓存。还是只有这样?
【问题讨论】: