C# 使用MSMQ远程队列

C# 使用MSMQ远程队列,c#,msmq,C#,Msmq,我在我们的web服务器(Windows 2008)上运行了一个MSMQ(消息队列系统),它也有IIS 7 我们有一个现有的可公开访问的ASMX web服务,它接收Xml请求,并使用以下代码将相关数据(未加密)写入消息中到本地MSMQ MessageQueue oMessageQueue = new MessageQueue(@"DIRECT=https://myip/private$/Orders"); try { Order oOrder = new Order();

我在我们的web服务器(Windows 2008)上运行了一个MSMQ(消息队列系统),它也有IIS 7

我们有一个现有的可公开访问的ASMX web服务,它接收Xml请求,并使用以下代码将相关数据(未加密)写入消息中到本地MSMQ

MessageQueue oMessageQueue = new MessageQueue(@"DIRECT=https://myip/private$/Orders");

try
{
  Order oOrder = new Order();       
  oOrder.Id = 1;    
  oOrder.ProductId = "XYZ-123";
  oOrder.Quantity = 2;
  oOrder.CardNumber = "1111222233334444";
  oOrder.CardExpiry = "2014-12";
  oOrder.CardCv2 = "123";
  oMessageQueue.Send(oOrder);
  return true;
}
catch(Exception ex)
{
   return false;
}
我有一个用C#编写的控制台应用程序,需要读取远程专用队列并处理消息。但是,我需要执行以下命令

(1) 对队列的所有请求都是通过HTTPS进行的(数据包含敏感的持卡人数据)

(2) 对队列的所有请求都经过身份验证

(3) 我最好查询远程队列,或者在两个消息队列之间设置站点到站点的连接,并且本地控制台应用程序访问本地队列

(4) 由于队列将临时包含持卡人数据,我应该加密队列中的消息吗

(5) 如果重新启动承载MSMQ的服务器,如何确保消息已存储且仍可处理

有人能就上述问题提供一些建议吗?

1)如果您使用的是MSMQ 3.0或更高版本,则可以使用HTTPS消息

2) 当涉及到身份验证时,有不同的方法/限制,我建议您深入研究文档,以确保MSMQ能够满足您的需要,您可以开始

3) 我个人的偏好一直是发送到远程队列并在本地读取,但我认为“最佳”方法在很大程度上取决于您的解决方案体系结构

4) 对

5) 在消息上设置Recoverable属性可以解决这一问题,但会影响性能