2009-07-02 17 views

Antwort

3

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.

+0

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 –

+0

Der Dienst wird jede Sekunde aufgerufen Oder der Dienst stellt jede Sekunde eine Datenbankanfrage? – FlySwat

+0

@flyswat: beide –

1

Je nachdem, was Sie tun wollen, vielleicht können Sie den Motor als Singleton schreiben, mit welchen Thread Dienste der ASMX Anruf zugegriffen wird.

3

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?

3

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.

Verwandte Themen