c# - IIS 中多个工作线程的共享消息队列

标签 c# asp.net asp.net-mvc iis-7 message-queue

我目前正在尝试将我们的新内部网 (ASP-MVC) 与我们的寻呼机系统的 Web 前端连接起来。寻呼机系统的前端大约有 10 年的历史,界面很差,也没有文档。为此,我将 Intranet 上的表单发送到服务器,然后我们的服务器将 HTTP POST 发送到寻呼机服务器,该服务器模仿其自己的表单发送的内容。

在测试过载时(我们几乎同时发送了大约 10 条消息)寻呼机服务器崩溃了,因为系统是一个黑盒子,我们注意到的唯一区别是并发 POST,我们至少可以尝试防止这种情况发生.

我想让所有消息进入队列,最多每 5-10 秒发送一次,但我不确定如何实现这个,请问有人有任何建议或指向一些基本教程的链接吗? ?

更新

我之前没有指定,但是从浏览器的角度来看,这个过程应该是同步的,即网络服务器从浏览器获取 http POST 请求,将消息放入队列,从队列发送消息, Web 服务器向浏览器发送 http 响应。这不是一项高容量服务,我希望同时请求很少见,因此响应将接近即时,它更像是一种限制,以防止并发请求出现潜在问题。

最佳答案

假设您不想丢失任何请求,您的队列需要持久化。您可以汇总自己的实现并将数据放入数据库,或者您可以使用 MessageQueue 作为现成的后备存储。您的 Intranet 站点将推送(发送)消息到数据库或 MSMQ。您可以编写 Windows 服务或预定的控制台应用程序以从队列中读取(使用轮询),然后将数据发布到您的寻呼机系统。

这里有几篇文章从消息队列入手: http://www.primaryobjects.com/CMS/Article77.aspxhttp://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.aspx

关于c# - IIS 中多个工作线程的共享消息队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4068752/

相关文章:

c# - 即使使用 InfiniteAbsoluteExpiration,值也可以从 ObjectCache 中逐出吗?

c# - WPF:如何使用 MVVM 将命令绑定(bind)到 ListBoxItem?

jquery - 更新到 5.1.0 后将数据 POST 到 WebApi 失败

javascript - 是否可以在 MVC Controller 返回中调用模态弹出窗口(javascript)

jquery - 使用 JQuery 和 Metronic 检查 ASP.NET MVC 复选框集

c# - 如何从 Fubarcoder Restsharp 客户端提取内容?

c# - 使用 Ninject 工厂方法将 IEnumerable 注入(inject)构造函数

c# - 当服务器返回 500 内部服务器错误时,有没有办法检索消息正文?

c# - 如何将 GWT 与 Visual Studio 结合使用来创建 ASP.NET 网站?

asp.net-mvc - ASP.NET MVC中的CSS和Javascript相对路径困惑