Wenn ich versuche, eine .NET-Assembly (boo.exe
) von einer Netzwerkfreigabe (auf einem Laufwerk zugeordnet) laufen zu lassen, scheitert es, da es nur teilweise vertrauenswürdigem:Running „teilweise vertrauenswürdigen“ .NET-Assemblies von einer Netzwerkfreigabe
Unhandled Exception: System.Security.SecurityException: That assembly does not allow partially trusted callers.
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at BooCommandLine..ctor()
at Program..ctor()
at ProgramModule.Main(String[] argv)
The action that failed was:
LinkDemand
The assembly or AppDomain that failed was:
boo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67
The Zone of the assembly that failed was:
Intranet
The Url of the assembly that failed was:
file:///H:/boo-svn/bin/boo.exe
Mit Anweisungen von a blog post habe ich eine Richtlinie zur .NET-Konfiguration hinzugefügt, die allen Assemblys mit file:///H:/*
als URL vollständig vertraut. Ich verifizierte dies durch Eingabe der URL file:///H:/boo-svn/bin/boo.exe
in die Evaluieren Sie Assembly Werkzeug in der .NET-Konfiguration und zur Kenntnis, dass boo.exe hatte die uneingeschränkte Erlaubnis (die es nicht vor der Richtlinie hatte).
Selbst mit der Berechtigung wird boo.exe
nicht ausgeführt. Ich bekomme immer noch dieselbe Fehlermeldung.
Was kann ich tun, um dieses Problem zu beheben? Gibt es eine andere Möglichkeit, "teilweise vertrauenswürdige" Assemblys aus Netzwerkfreigaben auszuführen, ohne dass für jede Assembly, die ich ausführen möchte, etwas geändert werden muss?
Dies funktioniert nicht in Windows 7 offenbar –
Interessant. Es ist möglich, dass Windows 7 gesperrte ausführbare Dateien über Netzwerkfreigaben verwaltet oder verwaltet werden. –