【发布时间】:2010-08-04 05:41:50
【问题描述】:
我遇到了一个我不完全理解的奇怪问题。主要症状是当我双击 MVC 应用程序中的链接(指向控制器操作)时,我的数据库服务器连接被破坏,并且出现错误:
命令的执行需要一个开放且可用的连接。连接的当前状态已断开。
如果我从控制器操作顶部的断点开始单步执行,它将向下跳几行,然后跳回到断点。不知何故,第一个请求在第二个请求到达之前没有完全执行,并且当它到达任何查询时,我的数据库连接以某种方式中断。每次发生这种情况,我都必须重新启动应用程序服务器。
起初它是间歇性发生的,但双击链接似乎每次都重现它。这在别人身上发生过吗?我在这里错过了什么?
谢谢,
生锈
更新:
A.) 当我们实际使用 Linq-to-entities 时,我错误地将其标记为 Linq-to-sql。 B.) 连接对象被定义为控制器的成员变量:
namespace C2S.Controllers
{
public class ArtifactController : Controller
{
private c2sEntities _entities = new c2sEntities();
...
我注意到在一些 asp.net 教程中,他们在同一位置声明了变量,但对初始化 db 对象的控制器有一个单独的构造函数。这有什么区别吗?
C.) 问题不仅在于如上所述的双击。连接在其他看似随机的时间中断;我似乎无法始终如一地重现该错误(即使双击也不总是会破坏它)。重新启动网站通常会修复它,尽管有时我必须重新启动主机。备份后,重复相同的操作序列通常不会重现相同的错误!
关于设置我的 linq-to-entities 类或数据库连接的性质,我可能有一些不明白的地方。有人有想法吗?我真的不知道如何调查这个!
再次感谢
生锈
【问题讨论】:
标签: asp.net asp.net-mvc sql-server-2005 asp.net-mvc-2 linq-to-entities