Я использую C# .NET SDK для MS CRM 4.0. В частности, я использую интерфейс XRM SDK.
Когда я запускаю клиентское приложение, первый запрос (например, получить всех пользователей crm-системы) занимает около 5 секунд. Накладные расходы возникают до того, как что-либо будет отправлено по сети (наблюдается в wirehark). Вот почему я предполагаю, что задержка связана с некоторыми накладными расходами на загрузку .NET.
Я нашел некоторые пояснения по адресу http://www.eggheadcafe.com/software/aspnet/31916049/the-initial-delay-when-using-the-crmservice-is-caused-by-two-things.aspx< /а>:
Первоначальная задержка при использовании CrmService вызвана двумя причинами. Сначала должен быть скомпилирован прокси-класс CrmService (из IL в родной) и загружена сериализация. Это требует большого объема обработки и, следовательно, времени. Эта компиляция происходит только при первом создании экземпляра прокси crmservice в AppDomain.
Во-вторых, когда вызов выполняется на сервере в первый раз, дополнительный класс может потребоваться загрузить.
Это нормальное поведение для .NET framework. Вы можете оптимизировать время загрузки CrmService, создав новый прокси-сервер службы с помощью инструмента WSDL и удалив все запросы и объекты, которые вы не используете. Проблема в том, что это требует много работы.
Предполагая, что приведенное выше объяснение применимо, есть ли что-нибудь еще, что можно сделать, чтобы избежать задержки, кроме ручного редактирования сгенерированных прокси-классов?
Я экспериментировал с GAC и нативными изображениями - безуспешно.