发布日期: 2016年11月
适用于: Dynamics CRM 2015
通过将 Dynamics 365 事件执行管道连接到 Microsoft Azure 服务总线,您可以将 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 与 Microsoft Azure 平台进行连接。 该连接可以使已处理为当前 Dynamics 365 操作的一部分的数据发布到该总线。 通过 Microsoft Azure 服务总线 解决方案(Dynamics 365 感知),可以侦听并读取 Microsoft Dynamics 365 在服务总线上发布的数据。 已发送数据存储在 RemoteExecutionContext 类实例上,后者是在运行时传递到 Microsoft Dynamics 365 异步插件的 IExecutionContext 的扩展版本。
Microsoft Dynamics 365 和 Microsoft Azure 平台之间的连接可以提供一个安全通道,用于将 Dynamics 365 运行时数据传播到基于外部云的业务线应用程序。
本主题内容
连接的关键元素
服务总线方案的 CRM
在 Microsoft Dynamics CRM 和 Windows Azure 解决方案之间建立合同
运行时错误管理
连接的关键元素
在 Microsoft Dynamics 365 和 Microsoft Azure 服务总线 之间实现连接的关键元素,如下所示:
异步服务
异步服务负责将 Microsoft Dynamics 365 远程执行上下文发送到 Microsoft Azure 服务总线。 每次发送都由异步服务的系统作业执行。 用户可以使用 Microsoft Dynamics 365 web 应用程序查看每个系统作业的状态。插件
连接功能支持两种异步注册的插件:自带 (OOB)、Dynamics 365 提供的插件和自定义。 有关通过 Microsoft Azure 使用同步插件的详细信息,请参阅访问通知服务。Dynamics 365 附带有一个 Azure 感知插件。 该插件在 Microsoft Dynamics 365 平台中以完全信任方式执行。 在 Microsoft Dynamics 365 中注册后,该插件可通知异步服务将当前请求的上下文发送到 Microsoft Azure 服务总线。 开发人员需要在该插件上注册一个步骤来标识目标消息和实体,以便启用服务总线发布功能。
您也可以编写自己的自定义“Azure 感知”插件。 自定义插件在沙盒中以不完全信任模式执行,并且可以调用任何 Microsoft Dynamics CRM SDK 方法。 自定义插件可将 Microsoft Dynamics 365 上下文发送到服务总线,前提是自定义插件必须包括通知异步服务发送请求上下文的某些标准代码行。 此特定云代码生成了插件“Azure 感知”。 有关一般插件的详细信息,请参阅编写插件。 有关 Azure 感知插件的详细信息,请参阅编写 Azure 感知自定义插件。
自定义工作流活动
可以编写自定义工作流活动以便将当前请求的数据上下文发送到 Microsoft Azure 服务总线。详细信息:示例:Azure意识自定义工作流活动。Microsoft Azure 服务总线
服务总线在 Microsoft Dynamics 365 和 Microsoft Azure 服务总线解决方案侦听器之间传递远程执行上下文。Microsoft Azure Active Directory 访问控制服务 (ACS)管理基于声明的身份验证安全。Microsoft Azure 解决方案
为使 Dynamics 365 和 Azure 连接发挥作用,Microsoft Azure 服务总线 解决方案帐户中必须至少存在一个解决方案,该解决方案包含一个或多个服务终结点。 对于中继终结点合同,“Dynamics 365 感知”的侦听器必须主动在终结点上侦听服务总线的 Dynamics 365 请求。 对于队列终结点合同,侦听器不必主动侦听。 通过将侦听器链接到 Microsoft.Xrm.Sdk 程序集以便定义 RemoteExecutionContext 类型,可以使该侦听器成为“Dynamics 365 感知”侦听器。详细信息:为 Windows Azure 解决方案编写监听程序必须配置解决方案规则以允许将 Microsoft Dynamics 365 远程执行上下文发送到服务总线。 要进行此发送,ACS 需要将 Dynamics 365 部署识别为支持的发布者。详细信息:配置 Azure 与 Microsoft Dynamics CRM 2015 集成。
重要
若要为 Microsoft Azure 平台开发解决方案侦听器,您需要在开发计算机上安装 Microsoft AzureSDK 版本 1.7 或 1.8 。
服务总线方案的 CRM
现在,让我们了解一个实现上述连接组件的方案。 作为必备条件,ACS 已配置为将 Microsoft Dynamics 365 识别为支持的发布者,并且为 Microsoft Azure 服务总线 解决方案配置了规则以允许 Microsoft Dynamics 365 发布到侦听器所处位置的终结点。
下图显示了构成该方案的物理元素。
.jpeg)
该图中标识的事件序列如下所示:
侦听器在 Microsoft Azure 服务总线解决方案终结点上进行注册,并开始在服务总线上主动侦听 Microsoft Dynamics 365 远程执行上下文。
用户在 Microsoft Dynamics 365 中执行某些触发操作,以执行注册的 OOB 插件或自定义 Azure 感知插件。 通过异步服务系统作业,插件开始将当前请求上下文发送到服务总线。
ACS 对 Microsoft Dynamics 365 发送的声明进行身份验证。 然后,服务总线将远程执行上下文传递到侦听器。 侦听器处理上下文信息,并使用该信息执行某些与业务相关的任务。 服务总线通知成功发布的异步服务,并将相关的系统作业设置为已完成状态。
在 Microsoft Dynamics CRM 和 Windows Azure 解决方案之间建立合同
对于每个解决方案终结点,您都要配置一个合同,以定义在服务总线上处理这些远程执行上下文“消息”的方式以及应在该终结点上使用的安全设置。 使用此处列出的其中一个受支持的合同,在终结点接收服务总线消息。
队列
队列合同在云中提供信息队列。 使用队列合同,侦听器不必主动侦听终结点上的消息。 对于队列,存在破坏性读取和非破坏性读取。 破坏性读取从队列中读取可用消息并删除该消息。 非破坏性读取不会删除队列中的消息在 Microsoft Dynamics 365 中被支持的队列有两种类型:消息缓冲区队列和持久队列。 对于消息缓冲区队列,如果在预配置的时间长度内(少于 10 分钟)没被读取,那么会自动删除这个队列中的消息。 持久队列有更长的消息可用期间(可代码指定)。
单向
单向合同需要主动侦听器。 如果终结点上没有主动监听程序,将无法把 Microsoft Dynamics 365 发布到服务总线。Microsoft Dynamics 365 将按呈指数级增加的时间跨度重试发布,直到发布请求的异步系统作业最终中止并且其状态设置为“失败”。双向
双向合同类似于单向合同,只是字符串值可以从侦听器返回到 Microsoft Dynamics 365。REST
REST 合同类似于 REST 终结点上的双向合同。主题
除了一个或多个侦听器可订阅以从主题接收消息外,其他的与队列相似。
重要
要使用这些合同,您必须使用 Microsoft AzureSDK v1.7 或 1.8 编写自己的侦听器应用程序。
消息缓冲队列现已弃用,且在 Microsoft Dynamics CRM SDK 的未来版本中将不再受支持。
确定合同使用的安全类型是合同配置的一部分。 合同可以使用传输安全性,后者使用安全套接字层 (SSL) (https)。
声明身份验证用于对服务总线进行安全访问。 用于向服务总线进行身份验证的声明是在 Microsoft Dynamics 365 内生成的,并由 Microsoft Dynamics 365 配置数据库中指定的 AppFabricIssuer 证书签名。
运行时错误管理
如果在尝试向服务总线发送上下文后出现错误,请在 Microsoft Dynamics 365 Web 应用程序中检查相关系统作业的状态,以获取有关该错误的详细信息。 如果服务总线已关闭或侦听器/终结点不可用,则不会将当前在 Microsoft Dynamics 365 中处理的消息发布到总线。 异步服务将继续尝试以指数形式发送该消息,在这种情况下,开始时它会尝试频繁发送,然后以越来越长的间隔发送。 对于内部 Microsoft Dynamics 365 错误,不会尝试发送消息。 对于外部服务总线或网络错误,相关系统作业将处于“等待”状态。
另请参阅
Microsoft Dynamics CRM 2015 的 Azure 扩展
配置 Azure 与 Microsoft Dynamics CRM 2015 集成
编写插件以扩展业务流程
Microsoft Dynamics CRM 2015 中的异步服务
AsyncOperation(系统作业)实体
© 2017 Microsoft。 保留所有权利。 版权