.net 奇怪的LINQ异常
我有一个与之类似的问题:我将单独发布,以提供关于我的案例中的问题的附加信息,以及调试它所采取的步骤 基本上,该网站在12个多小时内完全正常工作,然后突然停止工作。我将开始在LINQ查询中抛出奇怪的异常,这些异常以前工作得很好 我在这篇文章的底部添加了堆栈跟踪。 根据类似SO文章中的建议,我直接从ServerExplorer中的DB中拖动表,删除并重新创建了我的DBML。比较Git中的新旧字段,我发现了几个不同的字段:.net 奇怪的LINQ异常,.net,sql,asp.net-mvc,linq,.net,Sql,Asp.net Mvc,Linq,我有一个与之类似的问题:我将单独发布,以提供关于我的案例中的问题的附加信息,以及调试它所采取的步骤 基本上,该网站在12个多小时内完全正常工作,然后突然停止工作。我将开始在LINQ查询中抛出奇怪的异常,这些异常以前工作得很好 我在这篇文章的底部添加了堆栈跟踪。 根据类似SO文章中的建议,我直接从ServerExplorer中的DB中拖动表,删除并重新创建了我的DBML。比较Git中的新旧字段,我发现了几个不同的字段: 在dbml中将varchar(255)的一个实例设置为nchar(10) v
- 在dbml中将varchar(255)的一个实例设置为nchar(10)
- varchar(255)的两个实例,以前在dbml中没有
notnull
- 一个int(4)字段以前在dbml中没有
notnull
- 该网站在一段时间内100%正常工作,然后它开始抛出这些错误
- 我可以通过在IIS中重新启动站点或通过重新启动MSSQL服务器来临时修复它,但问题通常会在第二天出现
- 我不知道如何手动复制它
- 对于某些页面,我可以多次重新加载它们,得到不同但相似的异常
- 我可能会在调用
的行上获得一个.Count()
,然后重新加载它,并在调用invalidoOperationException
或.Any()
的行上获得一个.First()
索引AutoFrangeException
- 尽管异常会发生变化,但无论发生什么情况,我总是在某些页面上遇到异常-它们永远不会暂时消失
- 我可能会在调用
- 我使用的是repository模式,所以我的每个类都有一个带有私有DataContext成员的repository类——这是为什么
- 该站点有一个部分视图,其中包含来自db的导航项,这似乎总是可以很好地加载,但从db加载其他内容失败。也许这个块被缓存了,这就是为什么它继续工作的原因
System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询、查询信息查询信息、IOObjectReaderFactory工厂、对象[]parentArgs、对象[]userArgs、ICompiledSubQuery[]子查询、对象lastResult)+4539
关于为什么会发生这种情况以及如何解决问题,您有什么想法吗?
编辑1:我已在相应堆栈跟踪上方添加了相关代码。当最后一行代码执行时,将抛出异常
以下是我在重新启动站点之前能够复制粘贴的几个堆栈跟踪:
IEnumerable<Chapter> toc = (from c in db.Chapters
where c.Sections.Any()
orderby c.ChapterNumber ascending
select c);
return toc.Count();
[InvalidOperationException: Sequence contains more than one element]
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +4539
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +207
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +500
System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +41
System.Linq.Queryable.Count(IQueryable`1 source) +352
MvcPaging.PagedList`1.Initialize(IQueryable`1 source, Int32 index, Int32 pageSize, Nullable`1 totalCount) in C:\path\to\my\project\MvcPaging\src\MvcPaging\PagedList.cs:63
MvcPaging.PagedList`1..ctor(IEnumerable`1 source, Int32 index, Int32 pageSize, Nullable`1 totalCount) in C:\path\to\my\project\MvcPaging\src\MvcPaging\PagedList.cs:16
MvcPaging.PagedList`1..ctor(IEnumerable`1 source, Int32 index, Int32 pageSize) in C:\path\to\my\project\MvcPaging\src\MvcPaging\PagedList.cs:10
MvcPaging.PagingExtensions.ToPagedList(IEnumerable`1 source, Int32 pageIndex, Int32 pageSize) in C:\path\to\my\project\MvcPaging\src\MvcPaging\PagingExtensions.cs:77
MyNamespace.Controllers.ChaptersController.TableOfContents(Nullable`1 page) in C:\path\to\my\project\Controllers\ChaptersController.cs:73
lambda_method(Closure , ControllerBase , Object[] ) +118
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +129
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +784922
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +314
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +784976
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +37
var contentTop = (new PageRepository()).FindAllPages().Where(p => p.Slug == "login-top");
var contentBot = (new PageRepository()).FindAllPages().Where(p => p.Slug == "login-bottom");
ViewData["ContentAboveTheBox"] = (contentTop.Any() ? contentTop.First().HTML : String.Empty);
[IndexOutOfRangeException: Index was outside the bounds of the array.]
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +4539
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +207
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +500
System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +50
System.Linq.Queryable.First(IQueryable`1 source) +383
MyNamespace.Controllers.AccountController.SetLoginContentAreas() in C:\path\to\my\project\Controllers\AccountController.cs:112
MyNamespace.Controllers.AccountController.LogIn(String userName, String password, Nullable`1 rememberMe, String returnUrl, Nullable`1 IsEnc) in C:\path\to\my\project\Controllers\AccountController.cs:122
MyNamespace.Controllers.AccountController.LoginPassThru() in C:\path\to\my\project\Controllers\AccountController.cs:82
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +129
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +784922
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +314
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +784976
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371
IEnumerable toc=(来自db.Chapters中的c
其中c.Sections.Any()
orderby c.ChapterNumber递增
选择c);
返回toc.Count();
[InvalidOperationException:序列包含多个元素]
System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询、查询信息查询信息、IOObjectReaderFactory工厂、对象[]parentArgs、对象[]userArgs、ICompiledSubQuery[]子查询、对象lastResult)+4539
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询、查询信息[]查询信息、IOObjectReaderFactory工厂、对象[]用户参数、ICompiledSubQuery[]子查询)+207
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式查询)+500
System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(表达式)+41
System.Linq.Queryable.Count(IQueryable`1源)+352
MvcPaging.PagedList`1.在C:\path\to\my\project\MvcPaging\src\MvcPaging\PagedList.cs中初始化(IQueryable`1源,Int32索引,Int32 pageSize,Nullable`1 totalCount)
C:\path\to\my\project\MvcPaging\src\MvcPaging\PagedList.cs中的MvcPaging.PagedList`1..ctor(IEnumerable`1源,Int32索引,Int32 pageSize,null`1 totalCount)
C:\path\to\my\project\MvcPaging\src\MvcPaging\PagedList.cs:10中的MvcPaging.PagedList`1..ctor(IEnumerable`1源,Int32索引,Int32页面大小)
MvcPaging.PagingExtensions.ToPagedList(IEnumerable`1源,Int32 pageIndex,Int32 pageSize)位于C:\path\to\my\project\MvcPaging\src\MvcPaging\PagingExtensions.cs:77
C:\path\to\my\project\Controllers\ChaptersController.cs:73中的MyNamespace.Controllers.ChaptersController.TableOfContents(可为null的`1页)
lambda_方法(闭包、控制器基、对象[])+118
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary`2参数)+264
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary`2参数)+39
System.Web.Mvc.c__显示类15.b__12()+129
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter筛选器、ActionExecutingContext预文本、Func`1 continuation)+784922
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext ControllerContext,IList`1筛选器,ActionDescriptor ActionDescriptor,IDictionary`2参数)+314
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext ControllerContext,String actionName)+784976
System.Web.Mvc.Controller.ExecuteCore()+159
System.Web.Mvc.ControllerBase.Execute(RequestContext)+335
System.Web.Mvc.c__显示类b.b__5()+62
System.Web.Mvc.Async.c__显示类1.b__0()+20
System.Web.Mvc.c_uuudisplayClasse.b_uuud()+54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+453
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+37
var contentTop=(new PageRepository()).FindAllPages().Where(p=>p.Slug==“login top”);
var contentBot=(new PageRepository()).FindAllPages().Where(p=>p.Slug==“登录底部”);
视图数据[”B上的内容