Frage

Wir haben ein seltsames Problem mit unserer C ++ - Lösung (die .NET 4.0 -Assemblys aufruft) beim Ausführen auf einem Netzwerklaufwerk. Die Lösung beherbergt mehrere WCF-Dienste mit nettcpbinding, von denen eine mit einer Nicht-Default-Bindungskonfiguration. Ein nicht defektes nettcpbinding ist per se unter teilweise Vertrauen nicht möglich (siehe Stack-Überlauffrage Wann braucht WCF NettCPBinding volles Vertrauen in den Kunden?), aber die Lösung läuft unter einem voll vertrauenswürdigen Netzwerklaufwerk. Dies funktioniert auf verschiedenen Computern (Windows Vista und Windows 7), fällt jedoch bei einem (Windows Vista) mit einer Ausnahme aus.

Es ist ein Fehler aufgetreten, den Konfigurationsabschnitt Handler für "System.Servicemodel/Bindings" zu erstellen: Diese Baugruppe erlaubt nicht teilweise vertrauenswürdige Anrufer. (K: Somepath testing.exe.config Zeile 6)

Diese Ausnahme wäre total in Ordnung, wenn die Lösung tatsächlich unter teilweiseem Vertrauen auf diesen Computer ausgeführt würde, aber sie wird unter vollem Vertrauen ausgeführt. Auch wenn ich nach vollem Vertrauen in den Code überprüfe, ist es wahr.

Wir haben die Internetoptionen mit einem der Computer, auf denen es funktioniert, noch nicht überprüft - keine Unterschiede.

Alle DLL -Dateien und die EXE -Datei werden stark benannt.

Aktualisieren:Das Netzwerklaufwerk ist auf dem jeweiligen Computer voll vertrauen (caspol.exe).

Was sollen wir suchen?

Wenn Sie zusätzliche Informationen benötigen, lassen Sie es mich bitte wissen.

Update 2:Wir haben immer noch dieses Problem und jetzt sogar auf einem Computer mehr (Windows 7). Es scheint also OS unabhängig zu sein.

War es hilfreich?

Lösung 2

Wir haben hier keine Lösung gefunden, aber eine Problemumgehung: Verwenden Sie die App.config nicht für die Bindungseinstellungen. Das Einstellen in Code funktioniert für uns in derselben Umgebung.

Dies Die Frage übrigens scheint ein ähnliches Problem zu behandeln. HTH

Andere Tipps

Es heißt Code -Zugriffssicherheit (CAS), und es erzwingt alle nicht vertrauenswürdigen Netzwerkantriebe, um als nicht vertrauenswürdiger Netzwerkcode behandelt zu werden.

Der lokale Code hat volles Vertrauen, Netzwerkcode hat teilweise Vertrauen und Internetcode hat kein Vertrauen. Es ist ein .NET -Sicherheitsmodell. Ihre Möglichkeiten besteht darin, das Netzwerklaufwerk als "vertrauenswürdige" Laufwerk zu bezeichnen, indem Sie ihm vollständige Rechte geben (Suche nach caspol.exe Vollständiges Treuhandnetzwerk) oder die EXE -Datei in ein lokales Laufwerk kopieren.

Verwenden Sie Caspol, um einer Netzwerkfreigabe vollständig zu vertrauen sollte dir helfen.

Oder in der Befehlszeile:

CasPol.exe -m -pp off -ag 1.2 -url file://///server/share/* FullTrust .

Klicken Sie mit der rechten Maustaste auf app.config -> Eigenschaften -> Unbock

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