2009-03-24 6 views
1

Ich habe eine Liste in einer Web-Steuerung, wenn das Steuerelement erstellt ist es geordnete Steuerelemente ich eine foreach-Schleife durch die Liste der Felder alsNull Referenz, wenn foreach-Schleife mit Schnittstellen ASP.Net Cluster durchführen Umwelt

foreach (IField field in this._fields) 
{ 
    /* Do some work here */ 
} 

Lokaler Host ausführen , Out-Dev-Umgebung und unsere Staging-Umgebung ist alles in Ordnung. Aber wenn wir in unserem Entwicklungscluster bereitstellen, ist jedes "Feld" während des Schleifens null. Was würde dazu führen, dass diese Objekte null sind? Wenn ich diese Liste aus einer anderen Liste von Daten lade, wird alles gut geladen und diese Daten sind nicht null.

+1

Nun, Sie haben nicht gezeigt, was this._fields ist. Offenbar wird es auf eine Menge von Null-Referenzen initialisiert, aber wir brauchen mehr Informationen als das - wie der Code es initialisiert. –

Antwort

2

Stellen Sie sicher, dass Sie nicht den Cache der Anwendungsebene in Ihrer App verwenden, um den Inhalt Ihrer IFields zu speichern, da dieser nicht auf den Servern in einem Cluster repliziert wird.

Wenn Sie den Sitzungscache erneut verwenden, vergewissern Sie sich, dass er für SQL Server bei der Ausführung im Cluster beibehalten wird. Wenn es sich um einen prozessinternen Sitzungscache handelt, ist dieser für jeden Server im Cluster (ähnlich dem Anwendungscache) eindeutig.

0

Erste Überprüfung: Wie erhalten Sie diese Felder Sammlung? Machst du etwas wie IField irgendwo auf dem Weg? Dies wird effektiv null ergeben, wenn IField nicht implementiert wird.

Wenn es nicht das oben genannte ist, wäre es ein wirklich seltsames Szenario. Das einzige, was in den Sinn kommt, war etwas wirklich schrecklich ich in einigen freien Code in einer App von einem anderen Anbieter entwickelt sah:

void Clear() 
{ 
    //some normal code to clear info on some controls 
    myTextBox = null; 
    anotherTextBox = null; 
} 

Zwar gibt es keinen Punkt ist dabei, verursacht es tatsächlich Probleme mit asp.net . In einigen bestimmten Postback-Szenarios ist asp.net während einiger interner Teile seines Lebenszyklus mit einer Nullreferenz-Ausnahme gescheitert.

Also, überprüfen Sie auch, ob es einige seltsame Routinen gibt, die den auf der Seite deklarierten Steuerelementen Null zuweisen.