Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Convalida del nome sicuro non riuscita. (Eccezione da HRESULT: 0x80131...
martedì 15 gennaio 2008 - 08.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
jesus_was_rasta
Profilo
| Newbie
4
messaggi | Data Invio:
mar 15 gen 2008 - 08:32
Ciao a tutti! :-)
Sto litigando con un problema del menga, spero di trovare aiuto e conforto... :-S
Vi spiego al situazione brevemente.
Ho un piccolo progetto (un exe più una pletora di dll che fungono da plugin) che viene richiamato da un gestionale, sia in locale che in rete. Per problemi di deploy da parte dei nostri distributori (il sw va a finire in reti ed infrastrutture anche piùttosto complesse per quanto riguarda policy di sicurezza) sono solito firmare gli assembly con nome sicuro, e poi installare una policy fulltrust sui client affinché tutti gli assembly con quella determinatya chiave pubblica possano essere eseguiti anche in rete locale, senza dover settare a mano policy o altre menate.
Funziona tutto bene, ma ora ho un errore cercando di caricare un assembly sviluppato e firmato da terze parti.
In pratica la situazione è questa: ho un mio assembly che referenzia una libreria mia di codice condiviso la quale, a sua volta, referenzia un assembly di terze parti: mio_plugin->libreria_condivisa->assembly_di_terze_parti.
In questa situazione, cercando di caricare mio_plugin ottengo la seguente eccezione (sia lanciandolo da locale sul mio PC che da rete):
[quote]---[20080115-084230] Exception Data Report----------------------------
# Exception Type: System.IO.FileLoadException
# Message: Impossibile caricare il file o l'assembly 'xxx, Version=1.3.0.0, Culture=neutral, PublicKeyToken=7db0fef4fgr4g5t1' o una delle relative dipendenze. Convalida del nome sicuro non riuscita. (Eccezione da HRESULT: 0x8013141A)
...
Area dell'assembly con errori:
MyComputer
# TargetSite: System.Reflection.Assembly nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.Assembly, System.Threading.StackCrawlMark ByRef, Boolean, Boolean)
# Method: nLoad
# Source: mscorlib
# StrackTrace: in System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
in System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
in System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)
in System.Reflection.Assembly.LoadFrom(String assemblyFile)
in ...
--- END --------------------------------------------------------------[/quote]
Le policy sul mio computer locale sono quelle di default; l'assemblly di terze parti è formato, ed ho provato anche per esso ad installare una policy che consenta l'utilizzo di assembly firmati con la sua chiave pubblica.
In GAC non ho messo nulla di mio, ne la libreira di terze parti; c'ho provato a metterla, ma non cambia nulla...
Se dereferenzio la libreria di codice che richiama l'assembly di terze parti funziona tutto.
Il mio_plugin è firmato con la stessa chiave pubblica che uso per tutti i miei assembly, non ha niente di strano...
Non so se ho spiegato bene la mia situazione...
Qualcuno ha idea su come uscire da questa empasse?
Giocare con policy o GAC?
Inglobare l'assembly di terze parti nella librira di codice condiviso?
Please ehelp! :-(
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !