I have a new endpoint that we setup using Azure ServiceBus to PoC using it as a transport. The vast majority of our endpoints are running internally using MSMQ which is also how our internal Service control instance is setup using MSMQ. I am trying to get the service control transport adapter to be able to pull the heartbeat/custom checks, audit and failure messages from Azure ServiceBus over to our MSMQ service control instance so that everything is centralized. Currently when I run the transport adapter solution I am getting the following error:
System.AggregateException: One or more errors occurred. ---> System.IO.FileLoadException: Could not load file or assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
at NServiceBus.Transport.AzureServiceBus.MessageSenderPool..ctor(String connectionString, TokenCredential tokenCredential, ServiceBusRetryOptions retryOptions, ServiceBusTransportType transportType, TransportTransactionMode transactionMode)
at NServiceBus.Transport.AzureServiceBus.AzureServiceBusTransportInfrastructure.CreateMessageDispatcher()
at NServiceBus.Raw.InitializableRawEndpoint.<Initialize>d__1.MoveNext()
This is the code I have setup for the transport adapter:
public async Task Start(IMessageSession session)
{
var transportAdapterConfig = new TransportAdapterConfig<AzureServiceBusTransport, MsmqTransport>($"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.ASB.Adapter");
var msmqServiceControlServerName = ConfigurationManager.AppSettings["MSMQServiceControlServerName"];
var msmqServiceControlInstanceName = ConfigurationManager.AppSettings["MSMQServiceControlInstanceName"];
transportAdapterConfig.CustomizeEndpointTransport
(
customization: transport =>
{
transport.ConnectionString($"{ConfigurationManager.ConnectionStrings["AzureServiceBusTransportConnectionString"].ConnectionString}");
transport.Transactions(TransportTransactionMode.ReceiveOnly);
}
);
transportAdapterConfig.EndpointSideControlQueue = "Particular.Servicecontrol.ASB";
transportAdapterConfig.ServiceControlSideControlQueue = msmqServiceControlInstanceName;
if (!string.IsNullOrEmpty(msmqServiceControlServerName))
{
transportAdapterConfig.ServiceControlSideAuditQueue = $"audit@{msmqServiceControlServerName}";
transportAdapterConfig.ServiceControlSideErrorQueue = $"error@{msmqServiceControlServerName}";
transportAdapterConfig.ServiceControlSideControlQueue = $"{msmqServiceControlInstanceName}@{msmqServiceControlServerName}";
}
_adapter = TransportAdapter.Create(transportAdapterConfig);
await _adapter.Start().ConfigureAwait(false);
}
I was wondering if there was something I am missing or what I’m doing wrong here
Packages:
- NServiceBus 7.2.5
- NServiceBus.Host 8.0.0
- NServiceBus.Transport.AzureServiceBus 2.0.2
- NServiceBus.Transport.MSMQ 1.2.0
- ServiceControl.TransportAdapter 2.0.1
- .NetFramework 4.7.2