Operation könnte die Laufzeit destabilisieren: LinqToSQL

8

Obwohl dies eine der besten Fehlermeldungen ist, die ich je gesehen habe (nur nach "Diese Operation könnte die Miete im Raum-Zeit-Kontinuum destabilisieren"), ist sie auch eine der frustrierendsten.

Ich habe eine ASP.NET MVC-Site entwickelt, die perfekt über VS2008 funktioniert. Es funktioniert perfekt auf einem lokalen IIS7-Server (Win2008Server & amp; Win7beta) und auch auf einem anderen Win2008Server-Host gehostet. Vor ein paar Tagen habe ich die Site auf einen neuen Host (Win2008Server) hochgeladen und bin in den Fehler "Operation könnte die Laufzeit destabiliseren" geraten, wenn eine (und nur eine) meiner LinqToSQL-Anweisungen ausgewertet wird.

Die fragliche Linq-Anweisung wurde bis zur Unklarheit vereinfacht, und immer noch, wenn ich das Ergebnis auswerte, tritt der Fehler auf:

%Vor%

Der fragliche Remote-Host läuft vollständig vertrauenswürdig, und es sind keine Switch-Anweisungen in Sicht (diese beiden Probleme traten bei Google als mit dem Fehler in Zusammenhang stehend auf).

Ein ähnliches Problem wurde bei Operation könnte die Laufzeit destabilisieren? , aber dort sind keine Schnittstellen (die mir bekannt sind).

Irgendwelche Ideen?

--- Nur eine Pause: Die fragliche Tabelle verwendet einen TIME-Datentyp und wird einer TimeSpan-Eigenschaft zugeordnet. Anscheinend war dies nur in .NET 3.5 SP1 verfügbar. Ich warte, um herauszufinden, ob mein neuer Host SP1 installiert hat ...

    
Darren Oster 27.01.2009, 00:03
quelle

5 Antworten

3

OK, das Endergebnis war, dass mein Host meine Site auf einem Server mit installiertem .NET 3.5 (nicht SP1) ausgeführt hat, und die eine Tabelle, die den TIME SQL-Datentyp verwendete, brach mit dem obigen Fehler. Ссылка gibt an, dass LINQ to SQL die Zuordnung dieser neuen Typen ab .NET 3.5 SP1 unterstützt.

Mein Gastgeber hat meine Site freundlicherweise auf einen .NET 3.5 SP1-Server migriert, und alles ist gut.

    
Darren Oster 28.01.2009, 03:49
quelle
1

Ereignis ist ein Schlüsselwort. Verwenden Sie stattdessen @event für Ihren Variablennamen.

    
Amy B 27.01.2009 05:54
quelle
0

Was passiert, wenn Sie dies tun?

%Vor%

, damit die SQL ausgewertet wird, bevor Sie in die Schleife gehen?

    
Glenn Slaven 27.01.2009 00:30
quelle
0

Es könnte sich lohnen, diesen Code zu ändern, um die Daten abzurufen, und dann zu überprüfen, ob das Array über Werte verfügt.

%Vor%

Wenn die linq-Abfrage nichts zurückgibt, vermeiden Sie den Fehler, Ihre for-Schleife zu vervollständigen

    
Andrew Harry 28.01.2009 03:59
quelle
0

In früheren Fällen, in denen dieser Fehler aufgetreten ist, ist dies auf Reflektionen zurückzuführen, bei denen versucht wurde, eine schreibgeschützte Eigenschaft oder ein schreibgeschütztes Feld festzulegen. Da Linq2Sql Reflexionen verwendet, ist dies vermutlich das Problem. Sie sollten die Typdefinition der Klasse untersuchen, von der "e" eine Instanz ist.

Stellen Sie sicher, dass sich Attribute auf den richtigen Mitgliedern befinden. Und achten Sie auf readonly in Linq2SQL Klassen.

    
leat 03.11.2010 20:18
quelle

Tags und Links