Wie kann ich einen Singleton asmx Webservice erstellen? (Bitte sagen Sie nicht WCF und WWF verwenden: D)So erstellen Sie einen Singleton asmx Service
Antwort
Kurze Antwort: Sie wollen nicht.
Lange Antwort: Eine Anfrage an eine .ASMX wird einen neuen Arbeitsthread nichtdeterministisch verwenden, also auch wenn Sie das Singleton-Muster verwendet haben, wird die Lebensdauer des Singleton nicht bekannt sein.
Vielleicht näher auf das, was Sie tun möchten, und ich kann Sie auf das beste Muster führen.
Sie könnten ein Aschx (HttpHandler) verwenden. Implementieren Sie IHttpHandler und setzen Sie IsReusable auf false.
http://neilkilbride.blogspot.com/2008/01/ihttphandler-isreusable-property.html
Je nachdem, was Sie tun wollen, vielleicht können Sie den Motor als Singleton schreiben, mit welchen Thread Dienste der ASMX Anruf zugegriffen wird.
Ich bin mir nicht sicher, wie ein Singleton Ihr Leistungsproblem löst, außer wenn Sie Daten in der Instanz zwischenspeichern. In diesem Fall würde ich dem obigen Vorschlag zustimmen, den Cache zwischen dem Dienst und der Datenbank einzuführen. Wie veränderlich sind diese Daten?
Ich werde WCF nicht vorschlagen, aber nur, weil Sie uns freundlich gebeten haben, nicht zu.
Ich werde erwähnen, dass Sie einen weiteren Grund gefunden haben, WCF über ASMX zu verwenden. Vielleicht möchten Sie eine Liste führen.
Sie möchten vielleicht auch eine Liste der Gründe für die Verwendung von ASMX über WCF führen. Möglicherweise möchten Sie die gleiche Liste auch für die Gründe verwenden, nicht auf .NET 3.5 SP1 zu aktualisieren. Es wird keine lange Liste sein.
Es mag eine Zeit kommen, in der sich das Management wundert, warum bestimmte Dinge so lange dauern, bis Sie ihnen Ihre Liste schicken wollen.
- 1. So verwenden Sie den öffentlichen Service asmx
- 2. So erstellen Sie coffeescript singleton Unterklasse
- 3. Erstellen Sie einen ASMX-Webdienst aus einer WSDL-Datei
- 4. Asmx-Web-Service-Standardauthentifizierung
- 5. asmx .net 2.0 Web-Service
- 6. So erstellen Sie einen Enums-Service in Ember
- 7. So erstellen Sie einen Web-Service in Sitecore
- 8. Dynamisch laden .asmx Web-Service
- 9. Kann ich einen singleton angularjs Controller erstellen?
- 10. Wie kann ein ASMX-Webdienst im Singleton-Modus ausgeführt werden?
- 11. So rufen Sie einen ASMX-Webservice über GET auf?
- 12. Intent Service Singleton
- 13. ASMX Web Service nicht serialisiert abstrakte Basisklasse
- 14. So veröffentlichen Sie den ASMX-Webdienst
- 15. WebLogic Clustered Singleton Service
- 16. So fügen Sie eine Servicereferenz zu .asmx hinzu
- 17. ASMX Web-Service-Referenz, wie MaxReceivedMessageSize
- 18. Singleton in Web-Service
- 19. Erste Sitzung in .NET ASMX Web-Service
- 20. So erstellen Sie einen Webservice von Qt
- 21. So erstellen Sie eine Eins-zu-Eins-Singleton-Beziehung
- 22. So erstellen Sie einen Binärbaum
- 23. So erstellen Sie einen scala.concurrent.ExecutionContext
- 24. Wechseln zwischen Instanzen eines Web-Service (ASMX)
- 25. ASMX Web Service langsam erste Anfrage
- 26. ASMX Web-Service hide Parameter angegeben
- 27. AngularJS Service nicht als Singleton
- 28. Verbrauchen ASMX-Service mit Sencha 2
- 29. Android: Wann Service gegen Singleton zu verwenden?
- 30. Sie müssen den HTTP-Antwortcode von asmx web service überschreiben
Nun, ich habe diesen Dienst, die Daten aus der Datenbank jede Sekunde anfordern, da dies ein großes Perf Problem verursachen und alle Benutzer erhalten die gleichen Daten aus dem Dienst Ich dachte, ein Singleton wäre eine gute Idee –
Der Dienst wird jede Sekunde aufgerufen Oder der Dienst stellt jede Sekunde eine Datenbankanfrage? – FlySwat
@flyswat: beide –