Цитата:
Сообщение от
spirius
Доброго времени суток!
Проблемка:
Существует батч, который создает тысячи рекорд с помощью вызова CrmServiceWrapper.Create(entity). Рекорды создаются без проблем.
Но каждый вызов .Create создает TCP соединение в IIS.
При малом количестве создаваемых рекорд ничего страшного не происходит. Но когда количество рекорд сильно увеличивается ИИС останавливается. Как я понял это зависит от ограничений на: количество свободных портов, время ожидания и т.д.
вот и возникает вопрос: есть ли возможность обрывать созданное .Create TCP соединение программно?
Dispose не помог. в CrmServiceWrapper других методов не видел, подобных этому.
П.С. CrmServiceWrapper использовать необязательно - может быть у кого-нибудь есть готовое решение через другую реализвацию?
Заранее спасибо.
Смысл в том, что при открытии порта он остается открытый примерно четыре минуты поэтому вы ограничены по количеству обращений (не более 5000 портов).
Это не связано не с СРМ не с CrmServiceWrapper .
Это ограничение IIS, так сказать его дифолтные настройки.
Я знаю несколько решения этой проблемы
- Увеличения количества процессов в Application Pool под которым бежит СРМ.
- Увеличение количества портов и уменьшения время которое порт открыт. http://support.microsoft.com/kb/196271
Оба этих я использую если есть большая нагрузка на СРМ, от пользователей (много пользователей много работают).
- Если проблема только ночью с какой-нибудь аппликацией которая обновляет/создает большой количества записи больше 4000.
Можно поставить Sleep между обращениями примерно 60 миллисекунд. Смысл в том, что у вас не было больше 16 обращений в минуту.
Удачи