Zugriff verweigert beim laden von Abhängigkeit .dll .NET
Okay,
Haben wir eine .NET WinForms-Anwendung, die mehrere .NET dll ' s es hängt davon ab, läuft auf einer XP-Maschine, die mit einem Netzwerk verbunden ist in einer großen Domäne.
Einer kleinen Geschichte, dass legt sich das problem.
Setzten wir diese Anwendung auf einer Kunden-Maschine, während als admin angemeldet und alles funktionierte gut.
Wir dann protokolliert, in eine niedrigere privalaged Konto, und niedrige und siehe da die Anwendung konnte nicht gestartet werden, aber das war zu erwarten.
so lernten wir Ihre IT-Abteilung, um den Ordner Lesen/Schreiben Zugang (wie wir Sie Ordner verwenden, in der es für das halten der temp-Dateien) und Sie durfte das .exe ausführbar sein, die von diesem Benutzer.
Beginnen nun die ausführbare Datei der Anwendung ausgeführt wird (yay) aber dann bekamen wir es, um eine Aktion durchzuführen, die erforderlichen code in einer von ihm abhängigen (managed) dll ' s...
Einer Exeception geworfen wird, wird die Meldung "Die Baugruppe "xxxx.dll" konnte nicht geladen werden (Zugriff verweigert)" ich bin versichert, die durch Ihre IT-Abteilung, die dll ' s haben die gleiche Datei-Berechtigungen, wie das Hauptprogramm (und schnell sehen, was die niedrigeren Berechtigungen, die der Benutzer sehen kann, der Sicherheitseinstellungen, es hat angezeigt, dass Art und Weise), und Sie waren nicht als "blockiert" wie mit XP manchmal nicht.
Die Frage ist also eher ein Fisch für mögliche Ideen, die möglicherweise die Ursache sein...
EDIT: Stellt sich heraus, es war die Datei-Berechtigungen, die waren das problem, und dass die IT-Abteilung in Frage gestellt hatte, nicht gefolgt durch die überprüfung, dass die Berechtigungen, die angewendet wurden, um alle untergeordneten Objekte. Wie ich nicht akzeptieren kann, dass alle 4 Antworten für solch gute Ideen, ich habe Euch gegeben alle ein bis Abstimmung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann der Benutzer Zugriff auf die DLL die in der Fehlermeldung aufgeführt, aber haben Sie Zugriff auf alle DLLs, die die DLL braucht? Check-out so etwas wie Dependency Walker finden Sie alle DLLs, die erforderlich sein könnten.
Mehrere mögliche Probleme, einige Details hier: http://msdn.microsoft.com/en-us/library/ab4eace3.aspx
Vielleicht Fragen Sie eine assembly zu laden, die macht Sicherheit verlangt, die größer sind als Ihre wichtigste Anwendung. (Das anfordern von Berechtigungen: http://msdn.microsoft.com/en-us/library/yd267cce.aspx )
Wenn Sie mit voller Vertrauen, das ist eher unwahrscheinlich, aber wenn die DLL geladen werden, ist auf dem Netzwerk, machen Sie sicher, dass der Standort vertraut .NET: (vertrauensvolle einer Aktie: http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx )
Funktioniert die DLL den Zugriff auf die registry oder anderen system-Ordner, die mit niedrigeren Berechtigungen, die der Benutzer nicht zugreifen darf? Was ist es zu tun versuchen, wenn der Fehler Auftritt?
Könnte man auch prüfen, ob die domain hat eine Gruppe Politik, die sich mit dem, was der DLL zu tun versucht.
.NET traut Baugruppen aus nicht-lokalen Laufwerken standardmäßig.
Sehen http://msdn.microsoft.com/en-us/library/zdc263t0.aspx für Anweisungen zum zulassen von bestimmten Speicherorten im Netzwerk vertraut werden kann.