Mon constructeur de service Web est appelé chaque fois que j'appelle une méthode web. Cela cause quelques problèmes avec certaines nouvelles fonctionnalités que j'ajoute et je n'arrive pas à comprendre ce que je fais de mal à cause de cela. Le seul endroit où je commence le webservice est dans Application_Start de global.asax.cs, mais si je supprime le code à new
le webservice, il appelle toujours le constructeur chaque fois que j'appelle un webmethod. Je l'ai testé en parcourant le fichier .asmx et en appelant le webmethod de cette façon et j'ai également créé une application de console de test qui fait référence au webservice et appelle les méthodes de cette façon. Les deux donnent les mêmes résultats. J'utilise C# dans ASP.NET 1.1. Des idées?
Edit:
Je suis en train de créer un fil de rythme cardiaque que les sondages un service de fenêtres. Je tente d'enregistrer le résultat dans une table de hachage (plusieurs threads interrogeant plusieurs services). J'ai changé le webmethod (comme il a utilisé pour interroger le service Windows) pour obtenir les résultats de la hashtable. Nous essayons d'augmenter la vitesse de cet appel webmethod.Pourquoi mon constructeur WebService est-il appelé chaque fois que j'appelle une méthode web?
Répondre
Chaque fois que vous appelez une méthode Web, une nouvelle instance du service Web est créée. Il s'agit du comportement attendu. Les services Web sont sans état, ce qui signifie qu'une instance du service n'est pas maintenue active entre les appels de méthode Web. Par conséquent, vous ne pouvez pas stocker d'état dans les membres (champs, propriétés) du service Web.
Si vous souhaitez enregistrer des valeurs/état entre des appels de méthode Web, vous devez utiliser la session ASP.NET ou une base de données à cette fin.
Voir cette question pour plus de détails: Is this supposed to work this way?
Euh ... ce genre est de par la conception que j'ai peur. Pouvez-vous décrire les problèmes que vous rencontrez et ce que vous essayez d'accomplir, je pense que vous devez refactoriser votre conception un peu ici.
Édité le message original pour décrire ce que nous essayons de faire. –
Vous pouvez également passer à WCF qui prend en charge les services stateful
Malheureusement, nous sommes "coincés" avec le cadre 1.1 pour cette version –
- 1. Constructeur du contrôleur appelé à chaque requête
- 2. pourquoi uislider appelant une méthode deux fois?
- 3. Mon simulateur d'iPhone se bloque chaque fois que je l'exécute
- 4. Pourquoi les applications de mon simulateur d'iPhone continuent-elles de planter? Chaque fois que je
- 5. Un service Web .NET instancié avec chaque appel de méthode?
- 6. service Web appelé deux fois avec la fonction jquery ajax
- 7. Pourquoi mon destructeur n'est jamais appelé?
- 8. Pourquoi mon TypeConverter n'est pas appelé?
- 9. Pourquoi mon filtre de servlet (Spring Security) est-il appelé deux fois?
- 10. Pourquoi l'événement cliqué sur mon bouton est-il appelé 4 fois?
- 11. Pourquoi est-ce que je reçois un avertissement chaque fois que j'utilise malloc?
- 12. Pourquoi l'observateur de NSNotification a appelé deux fois ....?
- 13. Vérifier la nouvelle version chaque fois que je visite une page Web - mise en cache
- 14. motionEnded est appelé plusieurs fois
- 15. Pourquoi PrintStream.close() finit par être appelé deux fois?
- 16. dojo.parser.parse ne fonctionne que la première fois il est appelé
- 17. .NET: Utilisation de Mutex pour m'assurer qu'un webservice n'est appelé qu'une seule fois
- 18. NSKeyedArchiver étant appelé deux fois
- 19. Servlet étant appelé deux fois!
- 20. Montrer chaque date une seule fois
- 21. Pourquoi GetControllerInstance() de mon usine de contrôleur Castle Windsor est-il appelé avec une valeur nulle?
- 22. WebService Async méthode question
- 23. Dois-je créer une connexion WCF une seule fois pour l'ensemble de mon application ou une fois pour chaque page?
- 24. Pourquoi mon webservice Java ne peut-il pas parler à mon serveur Perl?
- 25. HashMap se écrase écrit chaque fois que j'utilise .put()
- 26. Pourquoi ma méthode webservice serait-elle appelée via GET?
- 27. DataBindingComplete est appelé plusieurs fois se
- 28. Rhino Mocks - Comment affirmer une méthode simulée a été appelé n fois?
- 29. Pourquoi mon contrôle Web est-il nul?
- 30. Constructeur de copie de base non appelé
Merci très très mush, vraiment la meilleure réponse, vraiment merci! –