В настоящее время я работаю над проектом, который зависит от .net 4.5, поэтому я вынужден использовать Microsoft.Servicebus - и, следовательно, фабрику сообщений.
Создание объекта messagefactory, похоже, не является проблемой, но создание отправителя сообщения, похоже, здесь.
Я не уверен, какой путь к сущности для моей очереди сообщений Azure, и не знаю, как мне его искать?
Я инициализировал свою фабрику сообщений как таковую;
public Microsoft.ServiceBus.Messaging.MessagingFactory client = Microsoft.ServiceBus.Messaging.MessagingFactory.CreateFromConnectionString(ServiceBusConnectString);
Где servicebusconnectionstring - это основная строка подключения, извлеченная из очереди Azure, или следуя этому руководству: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-start-with-queues#1-create-a-namespace-using-the-azure-portal
Отправитель сообщения создается как таковой:
Microsoft.ServiceBus.Messaging.MessageSender sender = client.CreateMessageSender(destinationQueue,queueName);
Опять же destionationQueue и queueName - это строки, которые определены в лазурном?
Сообщение для отправки создается как таковое:
Microsoft.ServiceBus.Messaging.BrokeredMessage message = new Microsoft.ServiceBus.Messaging.BrokeredMessage(e.ToXml());
e
- это просто объект, у которого есть функция publich, которая может преобразовать его в строку xml.
Вот куда я отправляю сообщение:
try
{
IntegrationLogger.Write(LogLevel.Verbose, "Sending message to azure");
sender.Send(message);
}
catch(System.Exception ex)
{
if(ex is System.TimeoutException)
{
IntegrationLogger.Write(LogLevel.Error, "Timeout exeption");
}
if (ex is System.ArgumentException)
{
IntegrationLogger.Write(LogLevel.Error, "Message is empty");
}
}
IntegrationLogger
- это функция журнала, которую я использую, и последнее регистрируемое сообщение - «Отправка сообщения в лазурь», что означает, что что-то идет не так, когда я его отправляю. даже catch не ловит исключение? ..
В чем может быть проблема?
Я неправильно использую отправителя?