有没有办法增加插件可以执行的最长时间?
默认为 2 分钟。我在这里找到了。
限制是为了帮助保护服务器的性能,所以这里的正确方法是重新设计您的解决方案(例如,将您的密集逻辑移到工作流或 Web 服务中并异步调用它)。
我不知道有任何设置、标志或注册表项会延长两分钟的超时时间,但如果你必须坚持,你可能会发现可以通过将逻辑包装在 try/catch 块中来捏造解决方案,catch
ingSystem.TimeoutException
和继续你的代码。也许(未经测试)。
我想补充一点,似乎时间限制仅适用于在沙盒/部分信任模式下注册插件时。
我们遇到了这种问题,并通过在完全信任(非沙盒)模式下注册插件来解决它。我通过使用 Thread.Sleep 函数在开始执行任何插件逻辑之前等待 2 分钟来验证这一点。总共花了将近 4 分钟,但该插件在非沙盒模式下仍然表现良好。在沙盒模式下,它给我们带来了 2 分钟的异常。
根据 Microsoft 沙盒插件在 CRM 2013 中的电子学习材料只有 30 秒的限制,而不是 120 秒。我还没有测试过。