2013-03-07 2 views
0

J'ai développé un service Web XML simple qui utilise une table de hachage statique pour stocker deux tables de colonnes dans la base de données. La table de hachage est initialement chargée dans le premier appel au service Web. Le service Web fonctionne correctement dans Visual Studio IDE. Lorsqu'il est déployé dans IIS (version 7.0), il lève une exception nullpointer lorsqu'il est déployé dans IIS (version 7.0). Le message d'erreur pointe vers la fonction qui récupère les valeurs de paire de la table de hachage.Hashtable statique dans WebService

Ma question est: 1) Est-il possible de stocker une table de hachage statique dans le service Web tout au long du cycle de vie du service Web? 2) La hashtable doit-elle être vérifiée à chaque fois si elle est nulle ou non avant d'accéder à la hashtable? 3) Quelle est la meilleure façon d'utiliser une table de hachage statique?

Répondre

0

Le problème le plus probable ici est que votre service Web gère plusieurs appels simultanés en production. Ces appels apparaissent sous la forme de threads distincts et ils accèdent au single HashTable d'une manière non sécurisée. Ces accès dangereux sont à l'origine des données internes du HashTable à être corrompu résultant dans un NullReferenceException

Vous devez protéger l'accès à ce HashTable avec un verrou pour accéder en toute sécurité à partir d'un champ statique dans un service Web

+0

Merci pour la réponse. Pourriez-vous me guider comment verrouiller la hashtable. – Tom