2017-06-12 21 views
0

我们能否将webrequest对象传递到servicebus队列?我们能否将webrequest对象传递到servicebus队列?

var WebRequest = WebRequest.Create("http://test.com/test"); 
      var connectionString = "xxx"; 
      var queueName = "xxx"; 

      var client = QueueClient.CreateFromConnectionString(connectionString, queueName); 
      try 
      { 
       var message = new BrokeredMessage(WebRequest.GetRequestStream()); 

       client.Send(message); 
      } 
      catch (Exception ex) 
      { 
       Console.Write("error found"); 
      } 

回答

0

变种消息=新BrokeredMessage(WebRequest.GetRequestStream());

client.Send(message);

据我所知,WebRequest.GetRequestStream()返回一个ConnectStream,它是一个只写流。

enter image description here

如果调用QueueClient.Send method与你为的BodyStream传递到服务总线队列的流发送消息,该SDK将读取和序列化的BodyStream,但GetRequestStream方法返回的流不支持读取。

通常情况下,我们不会对请求流做任何处理但写入它,您能否解释将请求流保存在队列消息中的实际目标?

+0

我正在创建通用组件,它应该将网络请求推入天青队列中。我需要这样做,而不会丢失任何信息,比如丢失的帖子数据,例如数据可能是XML,json等。 – Skull

+0

我正在创建这个用于处理长时间运行的请求在后台长时间运行的过程中,如报告生成。如果请求遇到服务器(后端),我会在将请求排入Azure队列后以成功响应。 – Skull

+0

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''请求URL和请求方法等,以及存储在Blob中的XML(或json)文件的URL。然后后端可以根据队列消息发出请求。 –

相关问题