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;
}
您的意思是說,調用服務會導致隊列中的消息,或者服務的使用者是否應將結果放入隊列中?如果最後一個是你正在尋找的那個,你將不得不創建一個連接到服務總線的客戶端。 –