我们能有什么替代方式,使运行能够自定义工作流活动中的工作流程步骤。
我做的所有的时间都用插件注册工具注册DLL,然后重新启动服务器。那么只有我们可以利用工作流自定义工作流活动。
我重新启动IIS,并希望因此它会做,但没有运气后都试过了。
所有的时间重新启动服务器不应该有任何的解决方案。是否有它,请提出任何替代方法。所有你的建议将不胜感激。
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)你并不需要部署到服务器调试插件。它更容易/更快地创建一个测试工具。以下链接概述了单元测试如何建立一个开发环境。
CRM缓存dll文件,重新启动服务使其刷新这些缓存。
如果您注册一个同步插件,那么你需要重置IIS。
如果您注册一个异步插件或自定义工作流活动中,你需要重新设置异步服务。
我们不需要重启服务器,使其运行的插件代码,唯一的一点是,你需要后重新启动IIS。
尝试重新启动IIS,然后重新启动异步服务,这必须是必要的嘛。
这里的要点是非常具体 -
这不仅对CRM正确的,但也是IIS上承载的任何Web应用程序如此。 Web应用程序(CRM为你的情况下),缓存为DLL文件时执行消息的第一次(插件消息/事件 - 尽管这是由.NET平台内部完成,所以能够更有效地解决其他类似的电话。)。所以,在这种情况下,你需要从你的Web应用程序冲洗掉同步的事情。这就是为什么你需要回收应用程序池(聪明的办法 - >单应用程序冲洗,并没有在服务器上影响其他应用程序,你应该总是去APPPOOL循环而不是重新启动IIS)
对于这一点,我会建议你是写一个PowerShell脚本来回收应用程序池的应用程序,并触发其上张贴在VS.建设项目的情况下(插件项目)所以,这将使你的流程自动化,并会降低你的努力少得多。
关于定制WF装配,因为它执行异步下。服务,所以你需要从这里也丢弃掉缓存内容。
希望这可以帮助!
你不应该需要重新启动任何东西。
你需要做的是增加组件的版本号每次部署的时间要更新。
这可以确保CRM知道不使用它的缓存的版本,但要加载更新一个数据库
如果你想看到的化学武器制剂,而不需要重新启动的只是选择在插件注册工具的活动,按属性下方的“保存”按钮