legacyCasModel="true" und " dynamische Daten/Operationen
Dies ist ähnlich zu Seltsame Ausnahme in MVC 3-Projekt.
Haben wir eine ASP.NET 4.0-Anwendung von voller Vertrauenswürdigkeit ausgeführt werden. Dann müssen wir die folgende Zeile in unsere web.config, sonst einer der Bibliotheken, die wir verwenden, funktioniert Sie nicht. (Wie es explizit verwendet das veraltete CAS-Modell von früheren Versionen .NET).
<trust legacyCasModel="true" />
Gegeben, diese Einstellung, wir sind nicht in der Lage, um verwenden der dynamischen keyword oder bestimmte Funktionen ASP.NET MVC, die auf Sie verlassen.
Als ein Beispiel, der folgende code bewirkt, dass eine Ausnahme:
dynamic d = new object();
d.test = "jason";
Ausnahme ist:
Dynamic operations can only be performed in homogenous AppDomain.
Gibt es eine Möglichkeit, ich kann das dynamic-Schlüsselwort funktioniert, wenn legacyCasModel auf true gesetzt ist? (Wenn es auf false gesetzt wird, funktioniert alles, außer der Bibliothek, die es erfordert.)
Ideen:
- Gegeben, ich bin voll vertrauenswürdig ausgeführt wird, gehe ich davon aus, dass eine assembly in der AppDomain wird die Nutzung reduziert Berechtigungen (daher die nicht-homogen). Gibt es eine Möglichkeit, ich kann einfach sagen, und es laufen in full trust-Modus, so dass die Anwendungsdomäne homogen?
- Sollte ich in der Lage umgestalten meinen code irgendwie laden die problematische Montage in einer anderen AppDomain? Ich bin nicht vertraut mit den typischen Möglichkeiten, dies zu tun, aber es scheint Komplex.
- Gibt es einige andere Magische Konfiguration Einstellung, die ich aktivieren kann, damit es funktioniert?
InformationsquelleAutor Jason Kealey | 2011-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe nicht viel DLR-Zeug, aber ich habe gerade versucht einen schnellen test. In einer Konsolenanwendung, die äquivalent zu Ihrem Befehl schlägt fehl ...
Aber dies gelingt ...
Beim verwenden dynamischer Objekte, die Sie verwenden müssen, um ExpandoObject eher als plain old-Objekt.
In Fällen, In denen ExpandoObject nicht Ihren Anforderungen entspricht, etwas stärker wie http://clay.codeplex.com/
=== EDIT ===
Hilft, wenn ich Lesen Sie die Frage vollständig ...
Hinzufügen in
<trust legacyCasModel="true" level="Full" />
zu der Mischung führt sowohl zu fehl mit dem Fehler bereitgestellt."legacyCasModel" Kräfte, die eine nicht-homogene Domäne, wie es die pre-.net4 Weg, Dinge zu tun. Dies bedeutet, dass dynamische Objekte und Ihre älteren CAS-Bibliothek sind nicht kompatibel.
Nur gültige Problemumgehung dass ich sehen kann, wäre zu Abstrakt, dass ältere CAS Bibliothek zu führen Sie in einer separaten Anwendungsdomäne.
aktualisiert mit den Kommentaren von weiteren Experimentieren.
Ich bin Neigung zu dem gleichen Schluss wie Sie.
Angenommen Antwort - werde versuchen es zu laden und in eine andere Anwendungsdomäne.
InformationsquelleAutor JTew