Errore "Collection was modified; enumeration operation may not execute."
giantex non è online. Ultima attività: 22/07/2008 17.30.53giantex
Inserito il: 07 maggio 2008 11.38
48 messaggi dal 06 set 2002 Istalla Microsoft Silverlight!
L'applicazione in produzione mi segnala ogni tanto questo errore, specialmente richieste che arrivano da ricerche via google. Solo che non riesco a replicarle in ambiente di test e quindi risolvere il problema.

Dettagli errore:

Error Caught in Application_Error event

Date07/05/2008 - 11.26Error in: http://www.nomesito.it/Eventi-foto+sugar+reef_111_-1.aspx

Error Message:Collection was modified; enumeration operation may not execute.

Stack Trace: at System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext() at AHour.Engine.Controls.Search3.InitializeResource(Control resource) at AHour.Engine.Controls.Search3.CreateChildControls() at System.Web.UI.Control.EnsureChildControls() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

User:

Page:http://www.google.it/search?hl=it&sa=X&oi=spell&resnum=1&ct=result&cd=1&q=sugar+reef+discoteca+treviso&spell=1



Ho verificato ma l'unica collection che sfutto è questa:


foreach (EventCalendar mEventItem in mEventList)
{
mLoop++;
......
}


Quindi credo che il problema sia in questa porzione di codice(mEventList deriva da ArrayList), solo che non saprei da che parte cominciare per risolvere questo errore.


Qualcuno ha mai avuto questo tipo di problema?

Grazie
RE: Errore "Collection was modified; enumeration operation may not execute."
giantex non è online. Ultima attività: 22/07/2008 17.30.53giantex
Inserito il: 08 maggio 2008 16.55
48 messaggi dal 06 set 2002 Istalla Microsoft Silverlight!
Nessuno sa darmi una dritta ?!?!? :(
Microsoft Most Valuable Professional
RE: Errore "Collection was modified; enumeration operation may not execute."
nostromo non è online. Ultima attività: 07/08/2008 18.32.38nostromo
Inserito il: 08 maggio 2008 17.23
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11817 messaggi dal 18 feb 2004 Istalla Microsoft Silverlight!
EventCalendar è statica o condivisa a livello di applicazione? sembra che qualcosa modifichi la collezione mandando a rotoli l'enumerazione

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
RE: Errore "Collection was modified; enumeration operation may not execute."
giantex non è online. Ultima attività: 22/07/2008 17.30.53giantex
Inserito il: 09 maggio 2008 09.01
48 messaggi dal 06 set 2002 Istalla Microsoft Silverlight!
EventCalendar è definita così:


public class EventCalendar {
private int mEventCalendarID = -1; // Identificativo automatico (data base) dell'evento
private int mLanguageID = 0; // Id Language
private int mLocationID = 0;
....


Poi all'interno del programma dichiaro:

private EventCalendarCollection mEventList = new EventCalendarCollection();

E l'array viene caricato in questo modo:

mEventList = Eventi.GetSearchNextEvents(TextSearch, mTop, ID);
// Ricerca in AND CAUSE
if ((words != -1) & (mEventList.Count < mTop))
mEventList.AddRange(Eventi.GetSearchNextEventsArray(TextSearch, mTop, ID));
// Ricerca in OR CAUSE
if ((words != -1) & (mEventList.Count < mTop))
mEventList.AddRange(Eventi.GetSearchNextEventsArrayOr(TextSearch, mTop, ID));



Non ho capito cosa intendi per statica o dinamica...spero questo possa darti un risposta, altrimenti dovrai spiegarmi meglio non ho studiato :(

Fammi sapere
Ciao e grazie
Microsoft Most Valuable Professional
RE: Errore "Collection was modified; enumeration operation may not execute."
nostromo non è online. Ultima attività: 07/08/2008 18.32.38nostromo
Inserito il: 09 maggio 2008 09.17
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11817 messaggi dal 18 feb 2004 Istalla Microsoft Silverlight!
per statica intendo che il riferimento alla sua istanza è manutenuto in un campo statico, e che quindi ogni pagina accede alla solita collezione.

ma non sembra essere il tuo caso, almeno dal codice che hai postato, prova a postare più codice

ciao marco

p.s. posta tutto il codice di :

foreach (EventCalendar mEventItem in mEventList)
{
mLoop++;
......
}

Modificato da nostromo il 09 maggio 2008 09.22 -

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
RE: Errore "Collection was modified; enumeration operation may not execute."
giantex non è online. Ultima attività: 22/07/2008 17.30.53giantex
Inserito il: 09 maggio 2008 09.48
48 messaggi dal 06 set 2002 Istalla Microsoft Silverlight!
Ecco qui il codice:


foreach (EventCalendar mEventItem in mEventList)
{
mLoop++;
if (mLoop >= mIniPage)
{
mLabel = new Label();
mLabel.Text = "<div id=\"eventdatalist\"><div id=\"party_col_data\">";
mSearchResult.Controls.Add(mLabel);

if (mEventItem.FlyerTnSrc == "")
{
mHyperLink = new HyperLink();
mHyperLink.Text = mEventItem.Name;
mHyperLink.NavigateUrl = Global.UrlEventPage2 + AHours.TranslateUrl(mEventItem.Name) + "_" + mEventItem.EventCalendarID + ".aspx";
mSearchResult.Controls.Add(mHyperLink);
}
else
{
mHyperLink = new HyperLink();
mHyperLink.Text = mEventItem.Name;
mHyperLink.NavigateUrl = Global.UrlEventPage2 + AHours.TranslateUrl(mEventItem.Name) + "_" + mEventItem.EventCalendarID + ".aspx";
mSearchResult.Controls.Add(mHyperLink);

Location mLocationInfo = Eventi.GetLocationInfo(mEventItem.LocationID);

if (mLocationInfo.LocationOrder != 0)
{
mLabel = new Label();
mLabel.Text = "<br /><br />";
mSearchResult.Controls.Add(mLabel);

mHyperLink = new HyperLink();
mHyperLink.ImageUrl = "~/photos/flyer/" + mEventItem.FlyerTnSrc;
mHyperLink.NavigateUrl = Global.UrlEventPage2 + AHours.TranslateUrl(mEventItem.Name) + "_" + mEventItem.EventCalendarID + ".aspx";
mSearchResult.Controls.Add(mHyperLink);

mLabel = new Label();
mLabel.Text = "<br /><br />";
mSearchResult.Controls.Add(mLabel);
}
}

mLabel = new Label();
mLabel.Text = "</div><div id=\"location_col_data\">";
mSearchResult.Controls.Add(mLabel);

// Luogo
mHyperLink = new HyperLink();
mHyperLink.Text = mEventItem.LocName;
mHyperLink.NavigateUrl = Global.UrlLocationPage2 + AHours.TranslateUrl(mEventItem.LocName) + "_" + mEventItem.LocationID + ".aspx";
mSearchResult.Controls.Add(mHyperLink);

mLabel = new Label();
mLabel.Text = "<br />" + mEventItem.LocCity + "(" + mEventItem.LocCountry + ")";
mSearchResult.Controls.Add(mLabel);

// Musica
mLabel = new Label();
mLabel.Text = "</div><div id=\"music_col_data\">";
mSearchResult.Controls.Add(mLabel);

mLabel = new Label();
mMusicList.Clear();
mMusicList = Eventi.GetEvent2EventMusic(mEventItem.EventCalendarID);
foreach (MusicDetail mMusicItem in mMusicList)
{
if (mLabel.Text != string.Empty)
mLabel.Text += "<br>";
mLabel.Text += mMusicItem.MusicDescription;
}
mSearchResult.Controls.Add(mLabel);

// Artisti
mLabel = new Label();
mLabel.Text = "</div><div id=\"dj_col_data\">";
mSearchResult.Controls.Add(mLabel);

mLabel = new Label();
mLabel.Text = mEventItem.Djs;
mSearchResult.Controls.Add(mLabel);

// Ora
mLabel = new Label();
mLabel.Text = "</div><div id=\"time_col_data\">";
mSearchResult.Controls.Add(mLabel);

mLabel = new Label();
mLabel.Text = mEventItem.StartTime;
mSearchResult.Controls.Add(mLabel);

mLabel = new Label();
mLabel.Text = "</div></div>";
mSearchResult.Controls.Add(mLabel);
if (mCount > 12)
break;
}



Questo codice è inserito in protected override void InitializeResource(Control resource)

e mSearchResult è un placeholder.

Grazie
Gianluca
Microsoft Most Valuable Professional
RE: Errore "Collection was modified; enumeration operation may not execute."
nostromo non è online. Ultima attività: 07/08/2008 18.32.38nostromo
Inserito il: 09 maggio 2008 10.29
contributi / Top Poster / Community manager / www.soluzioni4d.it / Blog / 11817 messaggi dal 18 feb 2004 Istalla Microsoft Silverlight!
AHour è un tuo controllo?

ciao marco

Where we're going, we don't need roads!
http://nostromo.spaces.live.com/default.aspx
RE: Errore "Collection was modified; enumeration operation may not execute."
giantex non è online. Ultima attività: 22/07/2008 17.30.53giantex
Inserito il: 09 maggio 2008 10.33
48 messaggi dal 06 set 2002 Istalla Microsoft Silverlight!
Si è una classe che gestisce le funzionalità.


public class AHours
{
......
/// <summary>
///
/// </summary>
/// <returns></returns>
public static string TranslateUrl(string StringData)
{
string mRetVal = StringData;

mRetVal = mRetVal.Replace("_", "-").Replace(":", "-").Replace(" ", "-").Replace("&", "-").Replace("/", "-").Replace("*", "-").Replace("...", "-").Replace("..", "-").Replace("<", "-").Replace(">", "-").Replace("\"", "-").Replace("%", "").Replace("?", "").Replace("'", "").Replace("#", "nr").Replace("|", "");

return mRetVal;
}


/// <summary>
///
/// </summary>
/// <returns></returns>
public static void AddSearchWord(SearchWord SearchData)


......



Pagine: [1] 2 Avanti >>
Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


fabrica - 521 pt
vladimiro - 510 pt
stefanomnn - 242 pt

Ultimi vincitori: PeppeDotNet, fabrica, vladimiro

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums