ASP.NET Webgarden共享静态对象
我有一个需要使用jabber-net对象向客户端发送XMPP消息的web服务。
(这是为了处理打印:当Web服务需要打印某些内容时,我将XMPP消息发送到在插入打印机的特定机器上运行的Windows窗体客户机,打印作业类型和URL,然后客户机下载数据并将其发送到打印机,该通信通道也将用于其他POS功能,如打开至抽屉,与芯片和引脚设备通话等,因此打印替代品将不会有帮助)。
我有一个静态对象,它包含jabber-net对象的一个实例,它登录到XMPP服务器,然后可用于发送消息。
这工作正常单线程。 当我将Web服务转换为Web服务器以便它可以在多个线程上工作时,似乎每个线程都有它自己的jabber-net对象实例,所以它们都试图在XMPP服务器上登录曾经是同一个用户,这意味着他们不断被踢出去。
问题:有没有什么办法可以在网络园中的所有线程之间共享活动对象(可能处理事件,而不是序列化对象,而不仅仅是数据),如果是这样,最好的方法是什么?
Web花园基本上都是微型Web农场,应该这样对待 - 寻找可能会涉及Web农场的解决方案,这些解决方案将适用于您的情况。
我被会议和网络花园发现,最终我转向了一个流程外的会话提供者(我使用了一个基于memcached的提供者,但是SQL Server提供者已经工作了)。 你可以做类似的事情,并有一个eac线程可以请求对象的共享提供者。
这不会解决你的事件问题 - 但我怀疑这样可以解决,你可能不得不切换到一个消息系统(例如msmq),所有消息都由一个进程处理。
链接地址: http://www.djcxy.com/p/94097.html