Question

Mon constructeur de service Web est appelé chaque fois que j'appelle une méthode Web. Cela crée des problèmes avec certaines nouvelles fonctionnalités que j'ajoute et je ne peux pas comprendre ce que je fais mal pour le provoquer. Le seul endroit où je crée le service Web est dans Application_Start de global.asax.cs, mais si je supprime le code du nouveau service Web, il appelle toujours le constructeur chaque fois que j'appelle une méthode Web.

J'ai testé cela en naviguant dans le fichier .asmx et en appelant la méthode Web de cette manière. J'ai également créé une application de console de test contenant une référence au service Web et appelant les méthodes de cette manière. Les deux donnent les mêmes résultats.

J'utilise c # dans ASP.NET 1.1. Des idées?

Modifier:
J'essaie de créer un thread de pulsation qui interroge un service Windows. J'essaie de sauvegarder le résultat dans une table de hachage (plusieurs threads interrogeant plusieurs services). J'ai changé la méthode Web (telle qu'elle était utilisée pour interroger le service Windows) pour obtenir les résultats de la table de hachage. Nous essayons d’accroître la vitesse de cet appel à la méthode Web.

Était-ce utile?

La solution

Chaque fois que vous appelez une méthode Web, une nouvelle instance du service Web est créée - il s'agit du comportement souhaité. Les services Web sont sans état, ce qui signifie qu'une instance du service n'est pas maintenue en vie entre les appels de méthodes Web. Par conséquent, vous ne pouvez enregistrer aucun état dans les membres (champs, propriétés) du service Web.

Si vous souhaitez enregistrer certaines valeurs / états entre des appels de méthodes Web, vous devez utiliser la session ASP.NET ou une base de données à cette fin.

Voir cette question pour plus de détails: Est-ce censé fonctionner de cette manière?

Autres conseils

Euh… c’est un peu par ma conception, j’ai bien peur. Pouvez-vous décrire les problèmes que vous rencontrez et ce que vous essayez d’atteindre, je pense que vous devez redéfinir un peu votre conception ici.

Vous pouvez également passer à WCF qui prend en charge les services avec état

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top