Соединение на основе HTTP-запроса и время жизни приложения при использовании CrmServiceClient

Я работаю над приложением ASP.NET MVC5 и не очень знаком с CrmServiceClient поэтому мне нужна помощь в принятии решения, какой подход будет лучше для моего приложения.

Небольшое объяснение того, как приложение задумано, приложение будет иметь пользователей / агентов, которые будут работать в приложении. Самая большая проблема - как это должно выглядеть? Должен ли я сделать для каждого пользователя / агента его собственный экземпляр / соединение CrmServiceClient(каждый пользователь был бы "системным пользователем" в CRM и предоставил бы свои учетные данные) или я должен сделать один экземпляр / соединение CrmServiceClient(как администратор из CRM) и делать все операции.

HTTP-соединение на основе запроса:
С таким подходом я не уверен, как будет CrmServiceClient действовать, если для каждого запроса, который сделал каждый пользователь, я создаю новый экземпляр (открываем новое соединение) и когда запрос закончен, я Dispose() Это? Получу ли я новый экземпляр для каждого пользователя или получу такой же экземпляр для пользователя, который уже установил соединение в каком-то предыдущем запросе?

Время жизни приложения:
При таком подходе я бы создал экземпляр / соединение CrmServiceClient когда приложение запускается и остается открытым в течение всего срока службы приложения, чтобы каждый пользователь, выполняющий запрос, использовал один и тот же экземпляр. Может ли это быть большой проблемой производительности из-за того, что только один экземпляр / соединение открыто для CRM? Как будет действовать этот экземпляр / соединение через некоторое время? он закроется автоматически или останется открытым? (для простоты скажем, что приложение должно работать в течение нескольких дней, месяцев, лет и т. д.)

1 ответ

Решение

Не уверен насчет CrmServiceClient Однако я знаю, что HttpClient должен оставаться открытым в течение срока службы приложения (т.е. не должен использоваться в using структура, ни распоряжаться после каждого запроса).

Не могли бы вы проверить, что структура CrmServiceClient использует под капотом?

Другие вопросы по тегам