0
我最近开始使用Azure服务总线。我能够使用我的控制台应用程序从队列发送和接收消息,并能够在控制台应用程序中使用一个WCF服务,然后将响应发送到天青队列。但我有一些不同的场景。我不想创建任何控制台应用程序,因为我想使用SOAPUI发送响应(对azure队列)。我将在IIS上托管服务,并通过SoapUI请求,我应该在我的队列中得到响应。请为此提出一些解决方案。任何帮助将不胜感激。如何将WCF响应发送到Azure队列
我最近开始使用Azure服务总线。我能够使用我的控制台应用程序从队列发送和接收消息,并能够在控制台应用程序中使用一个WCF服务,然后将响应发送到天青队列。但我有一些不同的场景。我不想创建任何控制台应用程序,因为我想使用SOAPUI发送响应(对azure队列)。我将在IIS上托管服务,并通过SoapUI请求,我应该在我的队列中得到响应。请为此提出一些解决方案。任何帮助将不胜感激。如何将WCF响应发送到Azure队列
我建议你在service方法中增加一个额外的参数。您可以从SoapUI传递'true'以将结果保存到存储队列中。以下代码供您参考。
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;
}
您的意思是说,调用服务会导致队列中的消息,或者服务的使用者是否应将结果放入队列中?如果最后一个是你正在寻找的那个,你将不得不创建一个连接到服务总线的客户端。 –