2013-04-06 5 views
3

Может ли у нас есть альтернативный способ сделать возможность выполнения пользовательской операции Workflow в шагах Workflow.Зачем нам необходимо перезапустить CRM-сервер после регистрации пользовательского рабочего процесса с помощью инструмента «Регистрация плагинов», чтобы это правильно работало.

Все, что я делаю, регистрирует dll с помощью инструмента регистрации плагинов, а затем перезапускает сервер. Тогда только мы можем использовать пользовательский рабочий процесс в Workflow.

Я попытался перезапустить IIS и надеяться, что это будет сделано, но не повезло.

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

ответ

0

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

+0

Привет @Indranil, я не вижу свой пост до моего ответа, но перезапустить также асинхронный сервис, как лучший pratice –

0

Попробуйте перезапустить IIS, а затем перезапустите асинхронную службу, это должно быть единственное, что необходимо.

4

CRM кэширует DLL, перезапуск служб заставляет его обновлять эти кеши.

Если вы зарегистрируете синхронный плагин, вам необходимо сбросить IIS.

Если вы зарегистрируете асинхронный плагин или пользовательский рабочий процесс, вам необходимо сбросить асинхронную службу.

7

1) Вам не нужно перезапускать IIS; перезапустить пул приложений (его гораздо быстрее и не нарушает другие приложения, которые могут быть запущены на сервере, по умолчанию сво «CRMAppPool») с помощью команды:

%systemroot%\system32\inetsrv\appcmd recycle apppool CrmAppPool 

2) Кроме того, вы можете Переработайте процесс асинхронной путем запуска (PowerShell):

Restart-Service -displayname "Microsoft Dynamics CRM Asynchronous Processing Service" 

3) Обе эти команды могут работать удаленно, используя команду PowerShell:

powershell Invoke-Command [CrmServerName] -ScriptBlock { ["Restart-Service...."] } 

4) Вам не нужно разворачивать к сер ver для отладки плагинов. Его намного проще/быстрее создать тестовый жгут. В приведенной ниже ссылке описывается, как настроить среду dev для модульного тестирования.

How I develop and unit test CRM 2011 plugins

0

Дело здесь очень специфичен -

Это справедливо не только для CRM, но также верно для любого веб-приложения, размещенного на IIS. Веб-приложение (CRM для вашего случая) кэширует dll в первый раз, когда выполняется сообщение (плагин-сообщение/событие - хотя это делается с помощью платформы .net внутри, поэтому для более эффективного решения других подобных вызовов). Итак, в этом случае вам нужно отключить синхронизированную информацию из своего веб-приложения. Вот почему вам нужно перерабатывать пул приложений (SMART WAY -> для однократного приложения и не влиять на другие приложения на сервере, вы всегда должны использовать APPPOOL Recycle вместо перезапуска IIS.)

Для этого, что Я бы посоветовал вам написать сценарий powershell для утилизации AppPool для вашего приложения и запускать его в событии Post build вашего проекта (проект плагина) в VS. Таким образом, это сделает ваш процесс автоматизированным и уменьшит ваши усилия намного меньше.

Что касается пользовательской сборки WF, так как она выполняется под Async. Сервис, поэтому вам также необходимо отказаться от кэшированного контента.

Надеюсь, это поможет!

0

Вам не нужно ничего перезапускать.

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

Это гарантирует, что CRM не знает, чтобы использовать это в кэше версию, но загрузить обновленное одного базы данных