我目前正在更新我的项目(ASP.net C#)。在清洁,构建和发布网站方面,一切都在本地工作。将文件上传到服务器进行生产时,我收到一条错误消息,无法修复。
以下是信息。有人可以提供帮助,以便我可以在我的服务器上发布吗?
Sequence contains more than one element
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Sequence contains more than one element
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOp`enter code here`erationException: Sequence contains more than one element
System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source) +5876344
System.Linq.Queryable.SingleOrDefault(IQueryable`1 source, Expression`1 predicate) +490
Sinai.Ors.Domain.Repositories.UserRepository.GetUser(String mnemonic) in \\mdpointfs\md\moupar\Public Desktop\ORSUPDATE\Sinai (2)12.22.2014 VS2010\Sinai\Sinai.Ors.Domain\Repositories\UserRepository.cs:19
SinaiMasterPage.OnInit(EventArgs e) +42
System.Web.UI.Control.InitRecursive(Control namingContai`enter code here`ner) +186
System.Web.UI.Control.InitRecursive(Control namingContainer) +291
System.Web.UI.Page.ProcessRequestMain(Boolean includeS`enter code here`tagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2098
________________________________________
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34212
答案 0 :(得分:2)
堆栈跟踪告诉您完全错误所在的位置。在GetUser()
方法中,对集合调用SingleOrDefault()
。该集合有多个元素,因此抛出异常。
代码假设集合中永远不会有多个元素,并且该假设对于该数据是假的。您有几个选择:
Count()
,如果它大于1,则处理该错误情况。向用户显示消息?通知某人?这取决于你。FirstOrDefault()
代替SingleOrDefault()
。无论哪种方式,堆栈跟踪都会告诉您问题所在。
答案 1 :(得分:1)
您是否期望GetUser()
可以有多个值?如果没有,SingleOrDefault
可能会向您显示不一致。然后,您应该修复导致它的错误,并使其SingleOrDefault
而不是FirstOrDefault
。
SingleOrDefault
会抛出异常。
在这里,您可以准确地看到单个或默认方法的作用:http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault(v=vs.100).aspx