我在我们的网络服务器(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#编写的Console应用程序需要读取远程专用队列,并处理消息。但是我需要执行以下
(1)所有对队列的请求都是通过HTTPS进行的(数据包含敏感的持卡人数据)
(2)对队列的所有请求都经过身份验证。
(3)我最好查询远程队列,或者在两个消息队列之间建立站点到站点的连接,本地Console App访问本地队列。
(4)由于队列将临时包含持卡人数据,我应该加密队列中的消息
(5)如果重新启动托管MSMQ的服务器以确保邮件已存储且仍可处理,我该如何强制执行
有人可以就上述内容提出一些建议吗?
答案 0 :(得分:1)
1)如果您使用的是MSMQ 3.0或更高版本,则可以使用HTTPS消息传递
2)在身份验证方面存在不同的方法/限制,我建议您深入探索文档以确保MSMQ能够满足您的需求,您可以启动here
3)我的个人偏好一直是发送到远程队列并在本地阅读,但我认为“最佳”方法在很大程度上取决于您的解决方案架构
4)是的
5)在消息上设置Recoverable属性可以解决这个问题,但它会影响性能