Как отправить ответ WCF в очередь Azure
Я недавно начал работать с сервисной шиной Azure. Я могу отправлять и получать сообщения из очереди с помощью моего консольного приложения и использовать один сервис WCF в своем консольном приложении, а затем отправлять ответы в лазурную очередь. Но у меня есть другой сценарий. Я не хочу создавать консольное приложение, так как хочу отправить ответ (в лазурную очередь), используя SOAPUI. Я буду размещать службу на IIS и, запрашивая через SoapUI, я получу ответ в своей очереди. Пожалуйста, предложите какое-то решение для этого. Любая помощь будет оценена.
1 ответ
Я предлагаю вам добавить дополнительный параметр в метод обслуживания. Вы можете передать 'true' из SoapUI, чтобы сохранить результат в очереди хранения. Код ниже для вашей справки.
public CompositeType GetDataUsingDataContract(CompositeType requestData, bool saveResultToQueue = false)
{
//Process the request data and get the result
CompositeType result = GetResult(requestData);
if (saveResultToQueue)
{
//Serialize the result to a string
XmlSerializer serializer = new XmlSerializer(typeof(CompositeType));
MemoryStream ms = new MemoryStream();
serializer.Serialize(ms, result);
string serilizedResult = string.Empty;
using (StreamReader sr = new StreamReader(ms))
{
serilizedResult = sr.ReadToEnd();
}
//Add a new message to the queue
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("StorageConnectionString");
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("myqueue");
queue.CreateIfNotExists();
CloudQueueMessage message = new CloudQueueMessage(serilizedResult);
queue.AddMessage(message);
}
return result;
}