Frage

Ich habe eine Web-Anwendung einen Proxy verwendet eine Operation an einem WCF-Dienst aufrufen, die Daten aus einer AS400 zurückgibt, wie die verschiedenen Vertriebsregionen im Zusammenhang mit unserem Unternehmen, den verschiedenen Geschäften wir auf dem Gebiet haben aus usw. Diese Verkäufe nicht oft Regionen und Shops ändern, Geschäfte sind nur vielleicht ein Jahr zweimal hinzugefügt und Regionen das gleiche für ein paar Jahre gewesen.

Ich denke, meine Verwirrung mit InstanceContextMode liegt. Ich bin die Rückkehr nur eine Liste von „Regionen“ und „Shops“, wenn das Proxy-Client ruft GetRegions () oder GetStoresForRegion (int regionNumber)

Wenn stelle ich die InstanceContextMode auf einzelne und haben die Regionen und speichert initialisiert und bevölkert vor jedem Service-Betrieb aufrufen, wird diese Hilfe in irgendeiner Weise? Grundsätzlich gerade jetzt, sein bei jedem Aufruf einen DB-Lookup, und ich glaube nicht, gibt es eine Notwendigkeit.

So Benutzer auf Web-App -> Web-App-Seite -> hat nach unten von Regionen zu laden fallen -> Web-Entwickler-Proxy rufen Regionen zu bekommen ... aber dies geschieht, wenn jeder einzelner Benutzer den Web-App nutzt also im Grunde jedes Mal, wenn ein Benutzer Zugriff auf die Web-App, der Proxy einen Aufruf an die DB macht, ich glaube, diese Torheit ist und ein Fehler in der Art, wie ich den Service-Betrieb einrichten oder habe ich völlig mißverstanden etwas?

Update - Der Service ist IIS gehostet, so dass diese ganze Frage könnte moot werden

War es hilfreich?

Lösung

Die grundlegende Best Practice Empfehlung wäre für jeden Anruf, einzelne Instanz Dienste zu nutzen. Das ist am einfachsten zu erstellen, keine Gleichzeitigkeit Alpträume etc.

ABER:. Natürlich jedes Mal, wenn Sie den Kundendienst anrufen, eine Dienstinstanz erstellt und den Datenbank-Backend abgefragt

Wenn immer es möglich ist, versuchen Sie mit diesem zu halten. Versuchen Sie, die Caching-Logik in die Datenbank zu setzen -., Wenn Sie genügend RAM, die meisten Ihrer häufig angeforderten Daten im Speicher bleiben

Gehen zu einem ConcurrencyMode = mehr in Ihren WCF-Diensten bewirkt, dass alle Arten von Concurrency Problemen bis zeigen, dass man sehr vorsichtig sein muß mit. Versuchen Sie, dies zu vermeiden, wenn möglich.

Versuchen pro Anruf, Single-Instance erste und einzige zu optimieren, wenn man wirklich haben!

Marc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top