首页 文章

如何将WCF响应发送到Azure队列

提问于
浏览
0

我最近开始使用Azure服务总线 . 我能够使用我的控制台应用程序从队列发送和接收消息,并且能够在我的控制台应用程序中使用一个WCF服务,然后将响应发送到azure队列 . 但我有一些不同的情况 . 我不想创建任何控制台应用程序,因为我想使用SOAPUI发送响应(到azure队列) . 我将在IIS上托管服务,并通过SoapUI请求,我应该在队列中得到响应 . 请为此建议一些解决方案 . 任何帮助将不胜感激 .

1 回答

  • 0

    我建议你在服务方法中添加一个额外的参数 . 您可以从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;
    }
    

相关问题