Ich bin derzeit mit diesem Problem "Sammlung wurde modifiziert; Enumeration Operation kann nicht ausgeführt werden" Problem.NHibernate: Sammlung wurde geändert; Enumeration Operation kann nicht ausgeführt werden
Ich habe über diese Fehlermeldung gesucht, und es ist alles im Zusammenhang mit der Foreach-Anweisung. Ich habe einige foreach-Anweisungen, aber sie repräsentieren einfach nur die Daten. Ich benutzte keine entfernen oder hinzufügen innerhalb der Foreach-Anweisung.
HINWEIS:
- Der Fehler tritt zufällig (etwa 4-5 mal pro Tag).
- Die Anwendung ist die MVC-Website.
- Es gibt ungefähr 5 Benutzer, die diese Anwendungen bedienen (ungefähr 150 Aufträge pro Tag). Könnte es sein, dass ein anderer Benutzer die Sammlung geändert hat und dann dieser Fehler auftritt?
- Ich habe log4net Setup und die Einstellungen here
- Vergewissern Sie sich, dass der Controller einen parameter öffentlichen Konstruktor hat ich parameterlos öffentlichen Konstruktor in AdminProductController
Hat jemand wissen, warum dies geschehen gefunden werden kann und Wie behebe ich dieses Problem?
Ein Freund (Oskar) erwähnt, dass
„Theorie: Vielleicht ist das Problem, dass Ihre Konfiguration und Sitzungs Fabrik auf der ersten Anforderung initialisiert wird nach Neustart der Anwendung Wenn eine zweite Anforderung eingeht. bevor die erste Anfrage abgeschlossen ist, vielleicht wird es auch versuchen, zu initialisieren und dann dieses Problem irgendwie auszulösen. "
Vielen Dank.
Daoming
Hier ist die Fehlermeldung:
System.InvalidOperationException Sammlung modifiziert wurde; Aufzählungsoperation wird möglicherweise nicht ausgeführt. System.InvalidOperationException: Beim Versuch, einen Controller vom Typ 'WebController.Controllers.Admin.AdminProductController' zu erstellen, ist ein Fehler aufgetreten. Stellen Sie sicher, dass der Controller über einen parameterlosen öffentlichen Konstruktor verfügt. ---> System.Reflection.TargetInvocationException: Vom Ziel eines Aufrufs wurde eine Ausnahme ausgelöst. ---> NHibernate.MappingException: Datenspeicher konnte nicht vom Eingabestream aus konfiguriert werden DomainModel.Entities.Mappings.OrderProductVariant.hbm.xml ---> System.InvalidOperationException: Sammlung wurde geändert; Aufzählungsoperation wird möglicherweise nicht ausgeführt. bei System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext() bei System.Xml.Schema.XmlSchemaSet.AddSchemaToSet (XmlSchema Schema) bei System.Xml.Schema.XmlSchemaSet.Add (String target, XmlSchema Schema) bei System .Xml.Schema.XmlSchemaSet.Add (XmlSchema-Schema) bei NHibernate.Cfg.Configuration.LoadMappingDocument (XmlReader hbmReader, String-Name) bei NHibernate.Cfg.Configuration.AddInputStream (Stream xmlInputStream, String-Name) --- Ende der inneren Ausnahme Stack-Trace --- bei NHibernate.Cfg.Configuration.LogAndThrow (Ausnahme Ausnahme) bei NHibernate.Cfg.Configuration.AddInputStream (Stream xmlInputStream, String name) bei NHibernate.Cfg.Configuration.AddResource (String Pfad, Assembly assembly) bei NHibernate.Cfg.Configuration.AddAssembly (Assembly assembly) bei DomainModel.RepositoryBase ..ctor() bei WebController.Controllers._baseController..ctor() bei WebController.Controllers.Admin.AdminProductController..ctor() bei System.RuntimeType.CreateInstanceImpl (Boolean publicO nly, Boolean skipVisibilityChecks, Boolean fillCache) --- Ende der inneren Ausnahmestapelüberwachung --- bei System.RuntimeType.CreateInstanceImpl (Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) bei System.Activator.CreateInstance (Typ Typ, Boolean nonPublic) bei System.Web.Mvc.DefaultControllerFactory.GetControllerInstance (RequestContext requestContext, Typ controllerType) --- Ende der inneren Ausnahmestapelaufzeichnung --- bei System.Web.Mvc.DefaultControllerFactory.GetControllerInstance (RequestContext requestContext, Type controllerType) bei System.Web.Mvc.DefaultControllerFactory.CreateController (RequestContext requestContext, String controllerName) bei System.Web.Mvc.MvcHandler.ProcessRequestInit (HttpContextBase httpContext, ICon troller & Controller IControllerFactory & Fabrik) bei System.Web.Mvc.MvcHandler.BeginProcessRequest (Httpcontextbase Httpcontext, AsyncCallback Rückruf, Objektzustand) bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() bei System.Web.HttpApplication.ExecuteStep (IExecutionStep Schritt, Boolean & completedSynchronously)
HI David, ich habe das Codebeispiel hinzugefügt. Ich denke, ich baue die Konfiguration mehrfach aus den log4net-Details. Könnten Sie mich beraten? Vielen Dank. –
Was ist mit dem Konstruktor im Controller - können Sie das posten? –
HI David, der Controller-Beispielcode wurde hinzugefügt. Danke vielmals. –