我们为什么需要使用插件注册工具,使这项工作正确注册自定义工作流后重新启动CRM服务器

问题描述 投票:3回答:7

我们能有什么替代方式,使运行能够自定义工作流活动中的工作流程步骤。

我做的所有的时间都用插件注册工具注册DLL,然后重新启动服务器。那么只有我们可以利用工作流自定义工作流活动。

我重新启动IIS,并希望因此它会做,但没有运气后都试过了。

所有的时间重新启动服务器不应该有任何的解决方案。是否有它,请提出任何替代方法。所有你的建议将不胜感激。

workflow dynamics-crm dynamics-crm-4 workflow-activity
7个回答
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)你并不需要部署到服务器调试插件。它更容易/更快地创建一个测试工具。以下链接概述了单元测试如何建立一个开发环境。

How I develop and unit test CRM 2011 plugins


4
投票

CRM缓存dll文件,重新启动服务使其刷新这些缓存。

如果您注册一个同步插件,那么你需要重置IIS。

如果您注册一个异步插件或自定义工作流活动中,你需要重新设置异步服务。


0
投票

我们不需要重启服务器,使其运行的插件代码,唯一的一点是,你需要后重新启动IIS。


0
投票

尝试重新启动IIS,然后重新启动异步服务,这必须是必要的嘛。


0
投票

这里的要点是非常具体 -

这不仅对CRM正确的,但也是IIS上承载的任何Web应用程序如此。 Web应用程序(CRM为你的情况下),缓存为DLL文件时执行消息的第一次(插件消息/事件 - 尽管这是由.NET平台内部完成,所以能够更有效地解决其他类似的电话。)。所以,在这种情况下,你需要从你的Web应用程序冲洗掉同步的事情。这就是为什么你需要回收应用程序池(聪明的办法 - >单应用程序冲洗,并没有在服务器上影响其他应用程序,你应该总是去APPPOOL循环而不是重新启动IIS)

对于这一点,我会建议你是写一个PowerShell脚本来回收应用程序池的应用程序,并触发其上张贴在VS.建设项目的情况下(插件项目)所以,这将使你的流程自动化,并会降低你的努力少得多。

关于定制WF装配,因为它执行异步下。服务,所以你需要从这里也丢弃掉缓存内容。

希望这可以帮助!


0
投票

你不应该需要重新启动任何东西。

你需要做的是增加组件的版本号每次部署的时间要更新。

这可以确保CRM知道不使用它的缓存的版本,但要加载更新一个数据库


0
投票

如果你想看到的化学武器制剂,而不需要重新启动的只是选择在插件注册工具的活动,按属性下方的“保存”按钮

© www.soinside.com 2019 - 2024. All rights reserved.