【问题标题】:MSMQ Message Received and being disappearingMSMQ 消息已收到并正在消失
【发布时间】:2018-08-22 21:00:49
【问题描述】:

在我的 Win2008R2 上,MSMQ 在 IIS 2.0(集成模式)中成功接收到来自已配置网站的消息,但在 1-2 分钟内,所有消息都从 MSMQ 中消失,这不清楚为什么?

我也尝试使用 Visual Studio 调试相同的进程,并且通过 VS Web 服务器在 MSMQ 中创建的消息在 Windows 8.1 系统上仍然存在,这没关系。

因此,在我们的案例中,只有从网站 (IIS 2.0) 收到的消息存在问题,而这些消息正在消失。

【问题讨论】:

  • 能否请您澄清一下这些消息的发往和发自哪里?例如,网站应用程序是否创建 MSMQ 消息并将其发送到队列。这都是在同一台机器上吗?
  • 我们在 MSMQ 消息中遇到问题。我们使用 ASP.net 2.0 创建了应用程序,每当发生电子邮件故障(邮件服务器故障或任何其他原因)时,我们都会向 MSMQ 发送电子邮件消息。我们创建了将在特定时间(现在为 30 分钟)后运行的调度程序,并读取 MSMQ 并再次重新发送所有 MSMQ 电子邮件,如果任何电子邮件再次失败,那么我们将在 MSMQ 中再次添加该电子邮件并发送其余电子邮件。它在本地环境中运行良好,但在 IIS 上,如果任何电子邮件再次失败,则从 MSMQ 中消失,而不是在 MSMQ 中再次添加。
  • 发件人和收件人电子邮件收件人在 web.config 中的代码和 SMTP 详细信息中给出
  • OK,所以MSMQ是不能发送到邮件服务器的邮件的备份存储区。
  • 是的,MSMQ 正在消失在 SMTP 不可用期间失败的消息,这些消息应该在 MSMQ 中保存 4 天,但正在消失。

标签: msmq


【解决方案1】:

问题已通过使用以下代码解决:

IIS 设置无需更改,这是代码问题。

// 查看并格式化消息。

        msgQueue.Formatter = new BinaryMessageFormatter();

        Message myMessage = msgQueue.Peek(new TimeSpan(0, 0, 3));

        MailMessage mailMessage = (myMessage.Body as SerializeableMailMessage).GetMailMessage();

        if (SendMail(mailMessage))
        {
            msgQueue.Receive();
        }

【讨论】:

    猜你喜欢
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2015-03-20
    • 2023-03-07
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多