Domanda

Ho un servizio web che genera un BadImageFormatException ogni volta che provo ad eseguire il servizio da Visual Studio. Questa risposta un'altra domanda suggerito l'esecuzione di peverify contro Dll per vedere se ci sono eventuali problemi.Mentre il mio web service DLL è bene, dipende dal servizio web un ILMerged assemblea, che non sono errori:

[IL]:Errore:[C:\blah\MyILMergedAssembly.dll :La crittografia

Utils.SecureStringExtensions::SecureEquals][offset 0x00000055][found non gestito puntatore] [attesi non gestito puntatore] Imprevisti tipo di pila.

[IL]:Errore:[C:\blah\MyILMergedAssembly.dll :La crittografia

Utils.SecureStringExtensions::SecureEquals][offset 0x0000005D][found non gestito puntatore][attesi non gestito puntatore] Imprevisti tipo di pila.

[IL]:Errore:[C:\blah\MyILMergedAssembly.dll :La crittografia

Utils.SecureStringExtensions::SecureEquals][offset 0x0000007E] non gestito puntatori non sono verificabili tipo.

3 Errore di Verifica .\MyILMergedAssembly.dll

(188 Avvertenze)

Penso che queste staminali dal mio uso di Marshal e IntPtr in MyILMergedAssembly, ma ovunque lo faccio, ho il metodo dichiarato come unsafe.Come faccio a sbarazzarsi di errori peverify dà, e si spera di sbarazzarsi di BadImageFormatException che esce quando cerco di eseguire il servizio web?

Edit: sembra forse che non posso usare ILMerge per unire gruppi di codice unsafe.Così ho cercato di avere il mio riferimento al servizio web di tutte le singole Dll in MyILMergedAssembly, ma ho ancora ottenere un BadImageFormatException.Ora è per me l'eccezione di una delle singole assemblee.Quando ho eseguito peverify su quell'individuo assemblea, ottengo:

[IL]:Errore:[C:\blah\Connection.dll :Connessione

.ConnectionBase::.ctor] [HRESULT 0x80070002] - impossibile trovare il file specificato.

Il ConnectionBase classe a cui si riferisce è proprio lì Connection.dll o almeno dovrebbe essere, dato che la classe è definita in Connessione nomi/progetto.Connessione 'Permettere di codice unsafe' controllato nella sua Build options.Il costruttore ConnectionBase quale potrebbe essere il riferimento è contrassegnato come internal.

Edit: Ho cercato di controllo "Consenti di codice unsafe' nel progetto di servizio web che utilizza la Dll con il codice unsafe.Ho anche provato ad aggiungere compilerOptions="/unsafe" per il Web.file di configurazione per il servizio web nel sistema.codedom > compilatori > compilatore nodo.Ho ancora una pagina con il seguente quando ho eseguito il servizio web, però:

Impossibile caricare il file o l'assembly 'Connessione' o una delle relative dipendenze.È stato effettuato un tentativo di caricare un programma con un formato non corretto.

Nessuna soluzione corretta

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