Dynamics 365/ Microsoft.ServiceBus DLL - System.Security.SecurityException: 该程序集不允许部分受信任的调用者

Dynamics 365/ Microsoft.ServiceBus DLL - System.Security.SecurityException: That assembly does not allow partially trusted callers

Dynamics 365 版本 8.2.24.23

我们想将消息从 Dynamics 365 发送到 Azure 服务总线。为此,我们通过 ilmerge 将 microsoft.servicebus.dll 合并到主 DLL 中。当我们通过自定义工作流 activity 调用 DLL 时,我们得到以下异常。

是否存在部分信任的来电者问题?作为解决方法,我们可以通过 REST API 调用 Azure 服务总线,但我们不希望这样做。

System.Security.SecurityException: 该程序集不允许部分受信任的调用方。

在Microsoft.ServiceBus.Messaging.MessagingFactorySettings..ctor() 在 Microsoft.ServiceBus.Messaging.Configuration.KeyValueConfigurationManager.CreateFactory(IEnumerable1 endpoints, IEnumerable1 stsEndpoints,IEnumerable1 viaEndpoints, String operationTimeout, String issuerName, String issuerKey, String sasKeyName, String sasKey, String sasToken, String windowsDomain, String windowsUser, SecureString windowsPassword, String oauthDomain, String oauthUser, SecureString oauthPassword, String transportType, String enableAmqpLinkRedirect, String amqpSecurityScheme) at Microsoft.ServiceBus.Messaging.Configuration.KeyValueConfigurationManager.GetOrUpdateFactory(IEnumerable1 端点,IEnumerable1 stsEndpoints, IEnumerable1 viaEndpoints,字符串 operationTimeout,字符串 issuerName,字符串 issuerKey,字符串 sasKeyName,字符串 sasKey,字符串sasToken,字符串 windowsDomain,字符串 windowsUser,SecureString windowsPassword,字符串 oauthDomain,字符串 oauthUser,SecureString oauthPassword,字符串 transportType,字符串 enableAmqpLinkRedirect,字符串 amqpSecurityScheme) 在 Microsoft.ServiceBus.Messaging.Configuration.KeyValueConfigurationManager.CreateMessagingFactory(布尔值 useCachedFactory) 在 Microsoft.ServiceBus.Messaging.MessagingFactory.CreateFromConnectionString(字符串 connectionString,布尔值 useCache) 在 Microsoft.ServiceBus.Messaging.TopicClient.CreateFromConnectionString(字符串连接字符串,字符串路径)

Dynamics 365 自定义工作流程序集部署在部分受信任的环境(即沙箱)中。不幸的是,您引用的程序集需要一个完全信任的环境。您的选择是使用 REST API.

这是一个类似的场景,其中引用了 SharePoint 程序集但需要完全信任:

我假设您使用的是 Dynamics 365 Online。请注意,在内部实施中,您可以在沙盒环境之外部署自定义工作流程序集。