Linq to sql LINQ2SQL InvalidCastException

Linq to sql LINQ2SQL InvalidCastException,linq-to-sql,asp.net-mvc-2,sql-server-2008-r2,iis-7.5,.net,Linq To Sql,Asp.net Mvc 2,Sql Server 2008 R2,Iis 7.5,.net,我有一个网站,有时会失去对数据库的访问。该网站仍然在IIS上运行,我可以毫无问题地访问首页 我在开发或测试中没有遇到这个错误,只是在live中 我记录的第一个异常似乎总是一个InvalidCastException,具有以下stacktrace 在此之后,我收到各种InvalidCastException和“服务器无法恢复事务”错误 很明显错误发生在哪里。我的问题是为什么会发生这种情况,为什么会导致应用程序失去对数据库的访问 我认为错误就在这一切之前 我的应用程序设置: ASP.NET MVC2

我有一个网站,有时会失去对数据库的访问。该网站仍然在IIS上运行,我可以毫无问题地访问首页

我在开发或测试中没有遇到这个错误,只是在live中

我记录的第一个异常似乎总是一个InvalidCastException,具有以下stacktrace

在此之后,我收到各种InvalidCastException和“服务器无法恢复事务”错误

很明显错误发生在哪里。我的问题是为什么会发生这种情况,为什么会导致应用程序失去对数据库的访问

我认为错误就在这一切之前

我的应用程序设置:

ASP.NET MVC2、LINQ2SQL、MsSQL Server 2008 R2、IIS 7.5(ASP 2.0)

我的控制器设置:

我担心我需要重新设计我的控制器,它们几乎都是这样的

[Authorize(Roles = "xxxxx")]
Public class ABController : Controller
{
    private readonly DBLinqDataContext _db = new DBLinqDataContext();

    public ActionResult Index()
    {
        ...
    }
}
是否会因为DBLinqDataContext未关闭而发生此错误

添加以下重写的方法可能会有帮助吗

    protected override void Dispose(bool disposing)
    {
        _db.Dispose();
        base.Dispose(disposing);
    }

如果您需要更多信息,请告诉我

看起来您已将
TempQuestion
的一个属性类型从
int
更改为某物,并且忘记更改相应表列的类型。

解决了此问题


这是由于多个未处理的dataContext的

导致的。您能在索引操作中显示代码并标记引发异常的行吗?我正在运行一个EntitySet protected override void Dispose(bool disposing) { _db.Dispose(); base.Dispose(disposing); }