我有一个使用C#在ASP.Net上运行的应用程序。该数据库是SQL Server 2008 R2。 asp.net应用程序也大量使用jQuery和AJAX。
我们有一个页面有几个下拉列表,使用jQuery AJAX调用填充。 AJAX调用中的缓存参数已设置为" false"。 AJAX调用的目标是基于页面的WebMethod(即PageMethod),后者又调用存储过程。此存储过程返回一个数据集,该数据集将转换为JSON输出并返回到AJAX调用。
最近,我们开始面临一个奇怪的问题,即在AJAX调用上执行的存储过程会抛出错误,例如"无法转换' undefined'到int"。我们已经在生产中调试了整个逻辑,没有像“未定义”这样的价值。它作为参数传递给存储过程。我们还启动了Sql Profiler,并且传递的参数也是有效的。
此外,如果我们使用Sql Profiler中显示的参数执行存储过程,它将成功执行而不会出现任何错误。在这一点上唯一的#34;修复"我们发现的是在SSMS中打开存储过程并执行按原样生成的存储过程脚本(不对脚本进行任何更改)。执行此更改脚本后,存储过程将开始正确返回值。这可以工作几天/周,然后我们再次遇到同样的问题。
有谁知道为什么会这样?这可能是SQL存储过程执行计划缓存的问题吗?
任何帮助都将受到高度赞赏。
由于