Also versuche ich gerade, einen Azure Bus Service zu arbeiten, in dem ich eine Warteschlange erstellen und dann eine Nachricht in die Warteschlange gestellt wird und dann woanders empfangen wird, und Code wird unter Verwendung der Daten ausgeführt, die die Nachricht durchlief. Ich habe alles eingerichtet und funktioniert, wie in ich kann eine Nachricht senden und erhielt es jedoch mit einigen Problemen. Während der Recherche habe ich herausgefunden, was zwei verschiedene Methoden zur Erfüllung der gleichen Aufgabe scheint.Was ist der Unterschied zwischen der ServiceBus/ServiceBusTrigger-Methode und der Verwendung von QueueClient bei Verwendung von Azure Bus Service?
Erstens:
eine Nachricht erstellen:
public static void CreateMessage(string data, [ServiceBus("QueueName")] out string output)
{
output = data;
}
Sie erhalten eine Nachricht:
public static void ProcessMessage([ServiceBusTrigger("QueueName")] string data)
{
//Do something with data
}
Hinweis: ich diese Methode zu verwenden, ich versuche, und während eine Nachricht empfangen wird, Daten sind null, wenn sie empfangen werden. Jede Hilfe mit diesem würde sehr geschätzt werden.
Zweitens:
eine Nachricht erstellen:
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
var message = new BrokeredMessage("This is a test message!");
client.Send(message);
eine Nachricht erhalten:
var queueName = "QueueName";
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
client.OnMessage(message =>
{
//do something with data
});
So ein paar Fragen.
1.Was ist der Unterschied zwischen diesen beiden Methoden und wo sollte jeder angewendet werden?
2.Während ich die erste Methode verwende, um zu versuchen und einfach eine Zeichenfolge zu senden, kann mir jemand sagen, warum 'Daten' als Null durchkommen, obwohl die Nachricht empfangen wird.
Beim Empfang einer Nachricht vom Servicebus (und Senden) gibt es einen Grund, warum Sie die Klasse "BrokeredMessage" nicht verwenden? –