每个会话用户的BroadCast管理员消息

时间:2012-04-08 00:00:54

标签: asp.net-mvc

我需要通知每个用户保存他们的工作和注销,以便管理员可以重置iis或在asp.net MVC应用服务器中进行一些更改。

循环遍历会话对象集合不是线程安全的,这是我所学到的。

还有其他想法吗?

即使我能掌握活动会话,我如何向这些客户发送消息?

提前感谢。

3 个答案:

答案 0 :(得分:1)

将消息保存在数据库中,并查询数据库以查看是否存在消息的每个请求。

答案 1 :(得分:0)

这似乎是一个定义不明确的要求。

应该在特定时间进行严重的维护,并且应该提前通知用户该时间窗口。

简单地重新启动IIS是一个非常快速的过程...是否有任何理由在重启IIS时用户会丢失工作?例如,虽然我已经填写了这个StackOverflow答案,但他们可能已经重启了服务器十几次。一旦我点击Post,如果服务器关闭,它将超时并将我的工作留在textarea中,否则如果服务器及时返回它将成功连接。

如果我没有提交数据,只是点击链接,则同样适用:浏览器超时,在这种情况下,一旦服务器恢复,简单的刷新就足够了,或者最终将用户带到他们的位置想去。

如果您正在进行纯AJAX请求,您将需要自己处理丢失的服务器,而不是依靠浏览器来执行此操作,但是由于分布式计算的八大谬误,您无论如何都需要解决这个问题# 1:“网络可靠。” (见http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing

所以,我实际上会推迟这个要求。他们要求你做一些不能真正满足需求的事情(用户不会丢失数据,获得相当好的经验),这将变得复杂,最终将成为一个脆弱的解决方案。

答案 2 :(得分:0)

听起来像SignalR一样!

https://github.com/SignalR/SignalR