Was sind die Dinge, von denen Medium Trust dich abhält? Zum Beispiel habe ich bereits erfahren, dass Medium Trust Sie daran hindert, System.IO.Path.GetTempPath () zu verwenden. Welche anderen Dinge sind so?
Hier erfahren Sie, wie Sie Vertrauensprobleme erkennen und lösen können.
1) Durchsuchen Sie Ihre Windows \ Microsoft.NET \ Framework [IHRE VERSION] \ CONFIG-Ordner für die Dateien:
2) Ändern Sie die Datei web.config, um
zu sagen %Vor%3) Versuchen Sie Ihre ASP.NET App. Mine ist mit einem Berechtigungsfehler fehlgeschlagen.
4) Vergleichen Sie web_mediumtrust.config und web_hightrust.config in einem Diff-Tool wie WinMerge.
5) Kopieren Sie die Einstellungen jeweils von hoch auf mittel und sehen Sie, wie sie Ihre App beeinflussen. In meinem Fall bezog sich die Fehlermeldung auf ConfigurationPermission, so dass es leicht zu diagnostizieren war.
Wenn Sie die genauen Zeilen in der Datei web_mediumtrust.config festhalten können, die Sie blockieren, können Sie diese möglicherweise mit Ihrem Hosting-Unternehmen teilen und haben eine bessere Chance, die Dinge zu klären.
Weitere Dokumentation hier:
Ссылка
@Oli, meine App IS gehostet bei GoDaddy und ich musste einige Workarounds in Code machen, als ich begann, Lucene.NET zu verwenden. Ich musste den Lucene.NET-Quellcode ändern, um GetTempPath und System.IO.FileInfo nicht zu verwenden.
Die meisten gemeinsam genutzten Hosts verwenden keine echte vertrauenswürdige Umgebung, da sie einige Dinge beschränken, die einfach zu wichtig sind. Andere beschränken einige zusätzliche Einstellungen für ihre eigenen analen Gründe.
Am besten fragen Sie Ihren Host, welche Einstellungen er für ASPNET verwendet. Fragen Sie nach den Spezifikationen des Vertrauenslevels, das sie verwenden. Finde die Speichergrenzen heraus. Sobald Sie diese Details haben, sollten Sie das Szenario auf lokaler Ebene replizieren können.
Wenn sie es Ihnen nicht sagen, richten Sie Ihre App so ein, dass sie in mittlerer Vertrauenswürdigkeit ausgeführt wird, aber sie funktioniert (offensichtlich) nicht, wenn sie eine geänderte Vertrauensstufe verwenden.
Hier finden Sie einige Informationen zum Festlegen von Vertrauensstufen in IIS .
Im Allgemeinen ist das einzige Problem, auf das ich gestoßen bin: Wenn Sie Assemblys drängen, stellen Sie sicher, dass Sie teilweise vertrauenswürdige Anfragen zulassen (es ist ein Assembly-Meta-Tag), sonst können Sie sie nicht verwenden.
Hier ist ein Auszug aus GoDaddy's Medium Trust Informationsseite :
Anwendungen, die unter einem Medium arbeiten Vertrauensebene haben keinen Registrierungszugriff, kein Zugriff auf das Windows-Ereignisprotokoll, und kann ReflectionPermission nicht verwenden (kann aber Reflection verwenden). Eine solche Anwendungen können nur mit kommunizieren ein definierter Bereich von Netzwerkadressen und Dateisystemzugriff ist beschränkt auf das virtuelle Verzeichnis der Anwendung Hierarchie.
Die Verwendung einer mittleren Vertrauensstufe verhindert Anwendungen Zugriff auf freigegebene Systemressourcen und beseitigt die Potenzial für die Anwendung Interferenz. Hinzufügen von OleDbPermission und OdbcPermission ermöglicht Anwendungen um auf diese Datenanbieter zuzugreifen Datenbanken. WebPermission wird geändert Ausgehende http und https zulassen Verkehr.
Das entspricht möglicherweise nicht genau dem, mit dem Sie mit Ihrem Host arbeiten müssen (es sei denn, Sie arbeiten mit GoDaddy), aber es ist ein typisches Beispiel.
Stellen Sie sicher, dass Bibliotheken / Frameworks von Drittanbietern (Castle kommt mir in den Sinn) in mittlerer Vertrauenswürdigkeit erstellt (oder erstellt werden können).
Die system.runtime.serialization-Bibliothek ist in der mittleren Vertrauensstellung nicht verfügbar.
Ich habe das für die jSerialisierung / Deserialisierung programmiert und den harten Weg herausgefunden. Es dauerte eine Woche, um einen Mitarbeiter zu finden, um zu bestätigen, dass die mittleren Vertrauensbeschränkungen schuld waren. Am Ende wechselte ich Hosting-Unternehmen.
Tags und Links asp.net security trust shared-hosting medium-trust