Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 奇怪的LINQ异常_.net_Sql_Asp.net Mvc_Linq - Fatal编程技术网

.net 奇怪的LINQ异常

.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

我有一个与之类似的问题:我将单独发布,以提供关于我的案例中的问题的附加信息,以及调试它所采取的步骤

基本上,该网站在12个多小时内完全正常工作,然后突然停止工作。我将开始在LINQ查询中抛出奇怪的异常,这些异常以前工作得很好

我在这篇文章的底部添加了堆栈跟踪。

根据类似SO文章中的建议,我直接从ServerExplorer中的DB中拖动表,删除并重新创建了我的DBML。比较Git中的新旧字段,我发现了几个不同的字段:

  • 在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上的内容