Соединение на основе HTTP-запроса и время жизни приложения при использовании CrmServiceClient
Я работаю над приложением ASP.NET MVC5 и не очень знаком с CrmServiceClient
поэтому мне нужна помощь в принятии решения, какой подход будет лучше для моего приложения.
Небольшое объяснение того, как приложение задумано, приложение будет иметь пользователей / агентов, которые будут работать в приложении. Самая большая проблема - как это должно выглядеть? Должен ли я сделать для каждого пользователя / агента его собственный экземпляр / соединение CrmServiceClient
(каждый пользователь был бы "системным пользователем" в CRM и предоставил бы свои учетные данные) или я должен сделать один экземпляр / соединение CrmServiceClient
(как администратор из CRM) и делать все операции.
HTTP-соединение на основе запроса:
С таким подходом я не уверен, как будет CrmServiceClient
действовать, если для каждого запроса, который сделал каждый пользователь, я создаю новый экземпляр (открываем новое соединение) и когда запрос закончен, я Dispose()
Это? Получу ли я новый экземпляр для каждого пользователя или получу такой же экземпляр для пользователя, который уже установил соединение в каком-то предыдущем запросе?
Время жизни приложения:
При таком подходе я бы создал экземпляр / соединение CrmServiceClient
когда приложение запускается и остается открытым в течение всего срока службы приложения, чтобы каждый пользователь, выполняющий запрос, использовал один и тот же экземпляр. Может ли это быть большой проблемой производительности из-за того, что только один экземпляр / соединение открыто для CRM? Как будет действовать этот экземпляр / соединение через некоторое время? он закроется автоматически или останется открытым? (для простоты скажем, что приложение должно работать в течение нескольких дней, месяцев, лет и т. д.)
1 ответ
Не уверен насчет CrmServiceClient
Однако я знаю, что HttpClient
должен оставаться открытым в течение срока службы приложения (т.е. не должен использоваться в using
структура, ни распоряжаться после каждого запроса).
Не могли бы вы проверить, что структура CrmServiceClient
использует под капотом?