Веб-приложение .NET, взаимодействующее с Dynamics CRM Organization.svc, регулируется при использовании аутентификации на основе утверждений - PullRequest
0 голосов
/ 06 марта 2019

У нас есть предоставляемое поставщиком веб-приложение .NET, работающее на IIS 8.5 (.NET 4.6.1).Он связывается с Microsoft Dynamics CRM 2016 (локально) через WCF Organization.svc.

Поскольку я проходил нагрузочное тестирование, узкое место, похоже, находится между веб-сервером (далее «WFE») исервер CRM (на котором размещается WCF Organization.svc).Процессор / память / диск на обоих серверах не показывают проблем.По мере увеличения нагрузки время отклика ухудшается, а загрузка ЦП / памяти / диска остается неизменной.

Если я смотрю на IIS - рабочие процессы на WFE, я вижу, что мои запросы к веб-приложению выстраиваются в очередь под нагрузкой с ожиданиемвремя до 40-50 секунд, в то время как на сервере CRM - IIS - рабочие процессы, запросы, находящиеся в очереди, ожидают только до 1-2 секунд.

Так что, похоже, большое ожидание происходит до того, какон попадает в CRM для обработки.Настройки конфигурации, которые я пробовал:

  • System.net - connectionManagement - увеличено maxConnections на WFE и / или CRM machine.config.
  • System.web - processModel - увеличено maxWorkerThreads, maxIoThreadsи minWorkerThreads.Также httpRuntime - minFreeThreads и minLocalRequestFreeThreads.Сделал это как на сервере WFE, так и на сервере CRM
  • В файле web.config сервера CRM - CRMWeb: System.serviceModel - привязки - netTcpBindings - увеличенные maxConnections System.serviceModel - поведение - serviceBehaviors - поведение - serviceThrottling - maxConcurrentCalls, maxConcurpss, maxConcurscs, maxConcurrentCalls, maxConcursc,и maxConcurrentInstances все установлены в 65536.

Ни одно из этих отдельных изменений не имеет заметных различий.Время отклика и использование ресурсов на серверах остаются постоянными, поэтому они, похоже, ничего не делают.

Но если я отключу «Аутентификацию на основе утверждений» в CRM «Диспетчер развертывания», все время отклика значительно улучшится (В 10 раз быстрее).

Я использовал Fiddler и увидел, что веб-приложение проходит проверку подлинности в ADFS только один раз, поэтому повторная проверка подлинности не выполняется снова и снова.CRM также имеет для authPersistNonNTLM значение True.И Fiddler на сервере CRM показывает, что он никогда не связывается с ADFS.

Веб-приложение использует версию 8.0 SDK CRM и специально использует класс OrganizationServiceProxy.

Я ценю любую помощь / пониманиедля дальнейшего устранения этой проблемы.

1 Ответ

0 голосов
/ 07 марта 2019

Оказывается, это известная проблема Microsoft CRM: https://www.cobalt.net/2015/01/28/claims-authentication-performance-overhead-in-dynamics-crm/ Ну хорошо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...