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)
Ho associato questo fallimento con una creazione pesante di nuove cartelle e di nuovi file di immagini all'interno di una cartella delle risorse che si trovano nella stessa cartella del sito. So che ASP.NET riavvia il pool di applicazioni in caso di eliminazione della cartella. E 'possibile che qualcosa è accaduto a causa di questo nuove risorse cartella in fase di creazione e in qualche modo ASP.NET vengono ricaricati assemblee ??

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 ??

È stato utile?

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.

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