Frage

Hallo alle. Ich versuche, ein Problem zu lösen, die anscheinend nicht ungewöhnlich ist, und ich bin nicht sicher, wie zu finden, wie dies wurde für Leute aufgelöst. Als ich StructureMap auf meinem Rechner über IIS laufen erhalte ich eine Ausnahme, und es sieht wie folgt aus:

**Description**: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
**Exception Details**: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Diese Frage ist hier bei SO kommen ( https://stackoverflow.com/questions/784666/ ), < a href = "http://codebetter.com/blogs/jeremy.miller/archive/2008/11/30/a-gentle-quickstart-for-structuremap-2-5.aspx" rel = "nofollow noreferrer"> in Kommentare zu dieser Blog-Post und ein Jahr oder so vor auf der StructureMap Mailingliste .

Mein Problem ist, läuft es nicht in einer fremden Hosting-Umgebung. Ich kann nicht einmal bekommen es auf meinem eigenen Feld zu laufen (IIS 7.5, Win7 RC, .NET 3.5). Ich habe versucht, die Site zu konfigurieren, um eine benutzerdefinierte Richtliniendatei zu verwenden und die FileIOPermission markiert uneingeschränkten Zugang zu haben ... keine Würfel. Wenn jemand ein paar Tipps oder einen Link hat, würde es sehr zu schätzen.

Aktualisieren So gibt es keine Möglichkeit, dass dies der beste Weg ist, um das Problem zu lösen, aber nach etwa Graben und auf der Suche in dem, was Joshua erwähnte, das sind die Dinge, die ich tun musste, um es arbeiten: StructureMap, Code Access Sicherheit und eine schlechte Lösung für ein Problem . Eine bessere Lösung wäre willkommen.

War es hilfreich?

Lösung

Das ist ein Fehler, und hat im Kofferraum fest. Es wird in den 2.6+ Versionen enthalten sein. Einige frühere Versionen von StructureMap würde entweder versuchen, unnötig die dynamischen Baugruppen auf die Festplatte zu schreiben, oder versuchen, unnötig aus dem Dateisystem zu lesen.

Wenn Sie in einer eingeschränkten Umgebung ausgeführt werden, die Zugang zu allen Pfade im Dateisystem (ASP.NET) nicht zulässt, stellen Sie sicher, IgnoreDefaultFile = true zu setzen, wenn Sie Ihren Container konfigurieren. Denken Sie daran, dies wird die Fähigkeit deaktivieren, um XML-Konfiguration aus StructureMap.config zu laden.

Andere Tipps

Für das, was es wert ist, lief ich in das gleiche Problem, bei dem ich den vollen Kontrolle über die Box musste und auch alle Berechtigungen auf volles Vertrauen gesetzt. Mit IIS 7.5, musste ich die Identität für den spezifischen Anwendungspool NetworkService- statt Application verwendet ändern. Sobald ich IIS neu gestartet wird, hat es funktioniert.

FYI, ich bin mit StructureMap v2.6.1 und lief in dieser Frage.

Ich verwende eine XML-Konfiguration nicht, so fügte ich die folgende Zeile in meiner Konfiguration Code, der das Problem behoben.

IgnoreStructureMapConfig = true;

Mit dem offiziellen StructureMap 2.5.4 Build auf Windows 7 mit IIS 7.5 ich immer noch auf dieses Problem gestoßen. Mallioch der Änderung

  ObjectFactory.Initialize(x =>
    {
      x.UseDefaultStructureMapConfigFile = false;
      x.IgnoreStructureMapConfig = true;

war notwendig, um die FileIOPermission Ausnahme zu lösen, aber ich erhielt dann Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed., die ich mit Mike-Lösung gelöst (für die ich habe eine erstellt Schritt-für-Schritt-Visualisierung ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top