2017-09-02 87 views
1

我知道我可以注册一个新的“服务端点”在MS CRM和使用,将消息发送到Azure的服务总线,但这个...是不是真的是我在找什么。上述方法最终发送一个序列号为RemoteExecutionContext发送自定义消息Azure的服务总线

在我的情况,我想有过什么样的服务总线的消息将包含完全控制。这意味着序列化我自己的类。

我试过使用WindowsAzure.ServiceBus块(和ILmerging新的DLL),但这只适用于非沙盒设置(内部部署CRM),但我也想让我的解决方案在CRM Online中工作。当试图使用CRM相同的代码,然后在线试图创建一个TopicClient抛出一个错误:

System.Security.SecurityException: That assembly does not allow partially trusted callers

是否有解决上述问题的任何方式?

+1

WindowsAzure.ServiceBus已经在GitHub上公开的信息来源。是否有什么特别的理由让你无法获取源代码,只需与CRM插件一起编译? –

+0

@PawelGradecki嗯,我可以尝试,但我怀疑这将解决问题。这可能是因为CRM Sandbox不信任'System.Web'(例如甚至不能使用UrlEncode)。顺便说一句:问题是不合并外部DLL的。我在我的CRM解决方案中以沙箱模式运行时成功使用了大量外部DLL。 – Shaamaan

回答

0

对于CRM Online,您可能需要消息转换/处理的逻辑沙箱之外。它需要有一些外部计算。考虑到你已经在线使用CRM,这不应该成为一个问题。

你可以采取的方法是转换CRM构建RemoteExecutionContext任何你想要的类型。关于如何将Dynamics 365与NServiceBus集成在一起,还有采用这种方法的sample。我所指的计算结果等同于样本的CRMAdapterEndpoint端点。端点使用Mapper对象JSON序列RemoteExecutionContext转换为自定义类型,ContactCreateContactUpdate。这将允许你实现你想要的。

+0

尽管技术上正确,但我试图简化解决方案,而不是使其更加复杂。 :/需要控制这些消息源于这个事实 - 我可以使用'RemoteExecutionContext',但发送一个序列化的模型类似乎以后更容易使用。 – Shaamaan

相关问题