我有一个网络服务,一直运行良好,现在几年没有修改。突然间,它今天决定它不会运行,并引发SQL超时:SQL Server超时故障排除
System.Data.SqlClient.SqlException:超时过期。操作完成之前超时的时间或服务器没有响应。
有趣的是,这个Web服务与数据库位于同一台服务器上,并且如果我将查询从SQL跟踪中拖出并在管理工作室中运行,它将在一秒钟内返回。但是,从Web服务中调用确切的30秒后,它会超时。我正在使用企业库连接到数据库,所以我无法想象随机开始失败。
我不太确定什么能突然让它停止工作。我回收了它所在的应用程序池,甚至重新启动了我看到它正在使用的SQL过程。同样的行为。任何方式我可以解决这个问题?
更新:米奇钉它。一旦我在sproc定义中的“AS”关键字之前添加了“WITH RECOMPILE”,它就会恢复生机。好样的!
@Chris:请注意,你不应该加上WITH RECOMPILE,除非它是最后一道沟渠。使用RECOMPILE FOR更有针对性 – 2009-03-05 00:16:57