Impossibile trovare assemblaggio - impossibile da rintracciare errore
-
27-10-2019 - |
Domanda
Ho un sito web che viene eseguito in IIS 7.0 in un pool di applicazioni v4.0 integrata. A partire da oggi ho l'sotto eccezione nel registro eventi di Windows. Il sito è online per 1 mese e non ho mai avuto questa eccezione prima. Ottengo l'eccezione agli stessi minuti ogni ora, che è un po 'strano.
Alcuni ragione possibile:
Ho una libreria che ho creato che ho caricare dinamicamente.
_searchProvider = (ISearchProvider)Activator.CreateInstance("SolrSearchProvider", "SearchProviders.SolrSearchProvider.SolrSearchProvider").Unwrap();
Questa libreria ha riferimento al SolrNet.
Avete qualche idea di che cosa il problema potrebbe essere o il modo di indagare più in ricerca di una soluzione ???
An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: 7192
Exception: System.Runtime.Serialization.SerializationException
Message: Unable to find assembly 'SolrNet, Version=0.4.0.1001, Culture=neutral, PublicKeyToken=bc21753e8aa334cb'.
StackTrace: at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.AppDomain.Deserialize(Byte[] blob)
at System.AppDomain.UnmarshalObject(Byte[] blob)
Mauricio Scheffer: @Dorin: allora il vero problema è la dipendenza circolare. Vi consiglio la pubblicazione di un nuovo dubbio su questo.
ho risolto il problema con la dipendenza circolare e continuo a ricevere lo stesso errore nei registri eventi di Windows.
Per prima cosa ottenere Unable to find assembly 'SolrNet, Version=0.4.0.1001, Culture=neutral, PublicKeyToken=bc21753e8aa334cb'
e poi l'applicatioin web viene riavviato.
3 a 10 secondi prima di entrare un'eccezione in Registri di Windows, ho individuato un expcetion nei miei file di log del sito generate da Entity Framework perché stavo cercando di inserire un elemento con la stessa chiave primaria come uno esistente. L'eccezione non è stata trattata nel codice, ma è stato trattato con asp.net a causa delle impostazioni CustomErrors
<customErrors mode="On" defaultRedirect="/Error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="/Error.aspx"/>
</customErrors>
Può questo avere a che fare con l'errore in Windows log file ??
Soluzione
Ho trovato questa dichiarazione a un post sul blog che oltre il soggetto, parla anche di perché un pool di applicazioni potrebbero scendere
"un'eccezione non gestita in un thread non associata a una richiesta di volontà abbattere il processo. Ciò si verifica anche se si dispone di una configurazione gestore tramite il metodo Application_Error ".
Per alcuni tipi di richieste di I creare 8 nuove discussioni da fili di richiesta per fare domanda simultaneo a 8 diversi nuclei della mia SOLR. In uno di questi nuclei mi è stato sempre un'eccezione che non ho gestito in quel filo e che mi ha fatto nel problema distaccati.
Spero che questo aiuti qualcun altro se incontrano un errore simile. Grazie ragazzi per l'aiuto. A causa delle sue risposte ho migliorato il mio codice e ho scoperto e fissato altri errori non legati alla domanda. Inoltre ho iniziato a guardare più in quanto i carichi ASP.NET di montaggio che è stato per un grande aiuto.
Altri suggerimenti
dove è stato installato il montaggio? era in GAC o nella cartella bin? ha il fornitore di hosting cambiato le impostazioni? provare a impostare percorsi di sondaggio nel file di configurazione, in cui le ricerche CLR per dll.
Ti sei ricordato di aggiungere l'assembly nella directory di lavoro della vostra applicazione?
Si deve essere lì in modo che il serializzatore per trovare e caricare i tipi.
Basta copiare manualmente in Explorer o scrivere qualche metodo che copia il file nella directory di lavoro.