Как отправить ответ 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;
}
Другие вопросы по тегам