.NET gestisce assemblaggio in attendibilità parziale su un'unità di rete, ma tutti gli altri in piena fiducia

StackOverflow https://stackoverflow.com/questions/4827670

Domanda

Abbiamo un problema strano con la nostra soluzione C ++ (che chiama NET 4.0 assembly) quando si esegue su un'unità di rete. La soluzione ospita diversi servizi WCF con NetTcpBinding, uno di loro con una configurazione di legame non predefinita. Un non-predefinito NetTcpBinding è di per se non è possibile in attendibilità parziale (vedi Stack Overflow domanda Quando parte WCF NetTcpBinding bisogno di piena fiducia sul client? ), ma le corse soluzione sotto un'unità di rete completamente attendibile. Questo funziona su diversi computer (Windows Vista e Windows 7), ma non riesce su uno (Windows Vista) con un'eccezione,

Si è verificato un errore durante la creazione del gestore della sezione di configurazione per "system.serviceModel / binding": Questo montaggio non consente chiamanti parzialmente attendibili. (K: \ somepath \ Testing.exe.Config linea 6)

Questa eccezione sarebbe totalmente OK, se la soluzione sarebbe davvero l'esecuzione con attendibilità parziale su quel computer, ma non eseguito in piena fiducia. Anche se controllo per la piena fiducia nel codice è vero.

Abbiamo controllato due volte le opzioni Internet con uno dei computer funziona su -. Differenze

Tutti i file DLL e il file EXE sono forti chiamati.

Aggiornamento: L'unità di rete è in fase di piena fiducia sul computer particolare (caspol.exe).

Che cosa dobbiamo cercare?

Se avete bisogno di ulteriori informazioni, per favore fatemelo sapere.

Aggiornamento 2: Abbiamo ancora quel problema e ora anche su un computer più (Windows 7). Così sembra essere indipendente dal sistema operativo.

È stato utile?

Soluzione 2

Non abbiamo trovato una soluzione qui, ma una soluzione alternativa: Non utilizzare l'app.config per le impostazioni di legame. l'impostazione nel codice funziona per noi nello stesso ambiente.

Questo domanda dal modo in cui sembra di gestire un problema simile. HTH

Altri suggerimenti

Si chiama codice di sicurezza di accesso (CAS), e costringe tutte le unità di rete non attendibili per essere trattati come codice di rete non attendibile.

Codice locale ha la piena fiducia, codice di rete ha attendibilità parziale e il codice di Internet non ha alcuna fiducia. E 'un modello unico di protezione di .NET. Le opzioni disponibili sono per designare sia l'unità di rete come unità 'di fiducia' dandogli pieni diritti (ricerca di caspol.exe unità di rete completa fiducia) oppure per copiare il file EXE in un'unità locale.

Utilizzando caspol a Fully fiducia una condivisione di rete dovrebbe aiutare fuori.

O sulla riga di comando:

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

Fare clic destro sul app.config -> Proprietà -> Unbock

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top