Meilleur auteur de réponses
Erreur sur System.Configuration.ConfigurationElement.GetHashCode()

Question
-
Bonjour,
J'ai aléatoirement une erreur sur mon serveur de production lors de l'appel à System.Configuration.ConfigurationElement.GetHashCode().
2 stacks différentes:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Configuration.ProviderSettings.UpdatePropertyCollection()
at System.Configuration.ProviderSettings.get_Properties()
at System.Configuration.ConfigurationElement.GetHashCode()
at System.Configuration.ConfigurationElementCollection.GetHashCode()
at System.Configuration.ConfigurationElement.GetHashCode()System.Configuration.ConfigurationErrorsException: The configuration is read only.
at System.Configuration.ConfigurationElement.SetPropertyValue(ConfigurationProperty prop, Object value, Boolean ignoreLocks)
at System.Configuration.ProviderSettings.SetProperty(String PropName, String value)
at System.Configuration.ProviderSettings.UpdatePropertyCollection()
at System.Configuration.ProviderSettings.get_Properties()
at System.Configuration.ConfigurationElement.GetHashCode()
at System.Configuration.ConfigurationElementCollection.GetHashCode()
at System.Configuration.ConfigurationElement.GetHashCode()A priori l'erreur est interne au framework.Je suis sur du IIS en FW4.0.
Merci d'avance pour votre aide
Réponses
-
On a trouvé une solution pour ne plus faire appel au hashcode.
L'erreur de ce type ne se reproduit plus sous cette forme, mais nous en avons d'autres toujours lié à la récupération des information du web.config.
System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.
System.Configuration.ConfigurationErrorsException: Unable to find the requested .Net Framework Data Provider. It may not be installed. (XXX\web.config line 43)Nous avons une évolution de prévu pour déplacer notre configuration (il y a pas mal de choses) hors web.config.
Mais se suis quand même surpris de voir un problème lié à la charge. Ces éléments ne sont sous forme statique ?- Marqué comme réponse Aurel Bera jeudi 21 février 2013 08:46
Toutes les réponses
-
Bonjour,
Pour moi il y a deux choses différentes.
Le premier stack trace me laisse penser que votre code tente d'accéder a une ressource qui n'existe pas ou qui n'est pas disponible.
Par rapport à la seconde exception il y a un problème dans votre code permettant d'écrire dans le fichier de config, vous pouvez regarder ce post si besoin : http://stackoverflow.com/questions/1186576/how-to-save-configuation-in-app-config-in-c-sharp-winforms
J'espère avoir pu vous aider.
- Modifié William HARY vendredi 15 février 2013 16:34 Traduction du poste anglais
-
Hello,
It seems that you have two different problems.
The first stack says that you try to get a collection of element and probably accessing properties that does not exist in the app.config.
About the second exception I'm would say your writting code to conf file is wong. How do you access and write into it ? Check this : http://stackoverflow.com/questions/1186576/how-to-save-configuation-in-app-config-in-c-sharp-winforms
Hope this help !
Thanks for your feedback.
I'm only calling GetHashCode() on objets returned by .NET framework : ConfigurationManager.ConnectionStrings and ConfigurationManager.GetSection().
No specific search of a property nor change of of configuration.
On my webpage i have the error and after refresh of the page no error. It happens ~10 times per days and i have more than 16 000 000 hits per day.
-
Je n'ai pas connaissance de problème de stabilité concernant l'utilisation du ConfigurationManager. Je dois bien dire que je ne vois pas d'où peut venir ce problème. Il s'agit peut être d'un problème de nombre d'accès simultanées ou de conflit de lecture / ecriture sur le fichier de config.
- Modifié William HARY vendredi 15 février 2013 16:24 Traduction psote anglais
-
Désole d'intervenir, mais vous êtes sur le Forums MSDN France.
Donc en français, s’il vous plait.
On essaye de faire les forums utiles pour ceux qui ne parlent pas l'anglais.
Merci,
Cordialement,
- Modifié Aurel Bera vendredi 15 février 2013 13:55
-
-
Bonjour
J'ai fait un petit calcul : 16 000 000 hits par jour = 185 hits par seconde, et c’est énorme.
Essayez d’utiliser une variable Application, si vous ne changez pas la config.
Cordialement, -
On a trouvé une solution pour ne plus faire appel au hashcode.
L'erreur de ce type ne se reproduit plus sous cette forme, mais nous en avons d'autres toujours lié à la récupération des information du web.config.
System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.
System.Configuration.ConfigurationErrorsException: Unable to find the requested .Net Framework Data Provider. It may not be installed. (XXX\web.config line 43)Nous avons une évolution de prévu pour déplacer notre configuration (il y a pas mal de choses) hors web.config.
Mais se suis quand même surpris de voir un problème lié à la charge. Ces éléments ne sont sous forme statique ?- Marqué comme réponse Aurel Bera jeudi 21 février 2013 08:46
-
Bonjour
Ici on a plus de details sur le fonctionnement de web.config:
http://msdn.microsoft.com/fr-fr/library/ms178685.aspx
Lorsque le serveur reçoit une demande pour une ressource Web particulière, ASP.NET calcule de manière hiérarchique les paramètres de configuration pour cette ressource, en utilisant tous les fichiers de configuration qui se trouvent dans le chemin d'accès du répertoire virtuel pour l'URL demandée.Les paramètres de configuration locaux se substituent aux paramètres des fichiers de configuration parents. Ces paramètres sont calculés une seule fois, puis mis en cache pour les demandes suivantes.ASP.NET surveille automatiquement toute modification apportée aux fichiers et recalcule le cache lorsque l'un des fichiers de configuration de la hiérarchie de ce fichier est modifié.Lorsque le serveur reçoit une demande pour une URL particulière, ASP.NET utilise la hiérarchie des paramètres de configuration présents dans le cache pour localiser la ressource demandée. L'application est redémarrée lorsqu'une modification de configuration est effectuée sauf si l'élément de section de configuration inclut un attribut restartOnExternalChanges="false", ou si le paramètre de configuration est contenu dans un fichier séparé lié au fichier Web.config à l'aide d'un attribut configSource.
Cordialement, -
Bonjour,
Nous marquons les solutions proposées afin que la réponse puisse être trouvée et utilisée
par d'autres membres de la communauté ayant des questions similaires.Cordialement,