Impossible de trouver l'assemblage - impossible de retracer l'erreur
-
27-10-2019 - |
Question
J'ai un site Web qui fonctionne dans IIS 7.0 dans un pool d'applications v4.0 intégré. A partir d'aujourd'hui je reçois l'exception ci-dessous dans le journal des événements Windows. Le site est en ligne pendant 1 mois et je n'a jamais eu cette exception avant. Je reçois l'exception aux mêmes minutes chaque heure qui est un peu étrange.
Quelques raisons possibles:
I ont une bibliothèque que je créé que je charge dynamique.
_searchProvider = (ISearchProvider)Activator.CreateInstance("SolrSearchProvider", "SearchProviders.SolrSearchProvider.SolrSearchProvider").Unwrap();
Cette bibliothèque a référence à SolrNet.
Avez-vous une idée de ce que le problème peut être ou comment enquêter plus en vue de trouver une solution ???
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 dit: @Dorin: alors le problème réel est la dépendance circulaire. Je recommande l'affichage d'une nouvelle question à ce sujet.
Je résolu le problème avec la dépendance circulaire et je continue à avoir la même erreur dans les journaux d'événements Windows.
Tout d'abord j'obtenir Unable to find assembly 'SolrNet, Version=0.4.0.1001, Culture=neutral, PublicKeyToken=bc21753e8aa334cb'
puis le applicatioin Web redémarre.
3 à 10 secondes avant que je reçois une exception dans les journaux de fenêtres, j'ai identifié un expcetion dans mes fichiers de site journaux jetés par le cadre de l'entité parce que je tentais d'insérer un élément avec la même clé primaire comme existant. L'exception n'a pas été traitée dans le code, mais a été traité par asp.net en raison des paramètres CustomErrors
<customErrors mode="On" defaultRedirect="/Error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="/Error.aspx"/>
</customErrors>
peut-il avoir quelque chose à voir avec l'erreur dans les fenêtres des fichiers journaux ??
La solution
Je trouve cette déclaration sur un billet de blog que, outre le sujet, parle aussi de pourquoi un pool d'applications peut descendre
"Une exception non gérée dans un thread non associé à une volonté de demande prendre le processus. Cela se produit même si vous avez une configuration de gestionnaire par la méthode de Application_Error ».
Pour certains types de demandes que je créer 8 nouveaux fils des fils de demande pour faire requête simultanée à 8 cœurs différents de mon SOLR. Dans l'un de ces noyaux, je recevais une exception que je ne géraient pas dans ce fil et qui me suis entré dans le problème ci-dessous.
J'espère que cela aide quelqu'un d'autre si elles rencontrent une erreur semblable. Merci un gars de beaucoup pour l'aide. En raison de vos réponses que j'amélioré mon code et j'ai découvert et corrigé d'autres erreurs non liées à la question. Aussi j'ai commencé à regarder de plus sur la façon dont l'ensemble des charges ASP.NET qui était une grande aide.
Autres conseils
où l'ensemble a été installé? était dans GAC ou dans le dossier bin? a le fournisseur d'hébergement changé ses paramètres? essayez de définir des chemins dans le fichier de sondage config, où les recherches CLR pour dll.
Avez-vous pensé à ajouter l'ensemble au répertoire de travail de votre application?
Il doit être là pour que le sérialiseur pour le trouver et charger les types.
Il suffit de copier manuellement dans l'explorateur ou écrire une méthode qui copie le fichier dans le répertoire de travail.