2017-09-30 1 views
0

Ich arbeite an ASP.NET MVC5-Anwendung, und ich bin nicht sehr vertraut mit CrmServiceClient, also brauche ich Hilfe bei der Entscheidung, welcher Ansatz für meine Anwendung besser wäre.HTTP-Anfrage basierte Verbindung vs Anwendung Lebenszeit Verbindung bei der Verwendung CrmServiceClient

Kleine Erklärung, wie Anwendung konzipiert ist, Anwendung wird Benutzer/Agenten haben, die in der Anwendung arbeiten werden. Das größte Problem ist, wie sollte das aussehen? Sollte ich für jeden Benutzer/Agenten seine eigene Instanz/Verbindung von CrmServiceClient machen (jeder Benutzer wäre "systemuser" in CRM und würde seine Zugangsdaten angeben) oder ich würde eine Instanz/Verbindung von CrmServiceClient (als Administrator von CRM) machen und alles tun die Operation.

HTTP-Anfrage-basierte Verbindung:
Mit diesem Ansatz ist nicht sicher, wie wird CrmServiceClient handeln, wenn für jede Anforderung, dass jeder Benutzer gemacht i schafft neue Instanz (neue Verbindung öffnen), und wenn Anfrage über i es Dispose()? Erhalte ich für jeden Benutzer eine neue Instanz oder erhalte ich dieselbe Instanz für einen Benutzer, der bereits eine Verbindung mit einer früheren Anfrage hergestellt hat?

Anwendung Lebensdauer Verbindung:
diesen Ansatz mit i eine Instanz/Verbindung von CrmServiceClient schaffen würde, wenn die Anwendung es für die gesamte Anwendung Lebensdauer öffnen beginnen und hält jeder so jeden Benutzer, die Anfrage gleiche Instanz verwenden würde machen. Könnte dies ein großes Leistungsproblem darstellen, da nur eine Instanz/Verbindung für CRM verfügbar ist? Wie wird diese Instanz/Verbindung nach einiger Zeit funktionieren? wird es automatisch geschlossen oder offen bleiben? (der Einfachheit halber sagen wir, dass die Anwendung für Tage, Monate, Jahre usw. laufen muss)

Antwort

0

Nicht sicher über CrmServiceClient aber ich weiß, dass HttpClient für die Lebensdauer der Anwendung geöffnet bleiben sollte (dh sollte nicht in einer using Struktur noch nach jeder Anfrage entsorgt werden).

Können Sie überprüfen, welche Struktur CrmServiceClient unter der Haube verwendet?

+0

'CrmServiceClient' verwenden' OrganizationServiceProxy', meintest du das oder etwas anderes? Wie auch immer, ich wählte ** Application lifetime connection ** und implementierte den benutzerdefinierten Verbindungspool von 'CrmServiceClient'. – Genato

Verwandte Themen