C# Can';是否在ASP.NET中不使用WCF NetPeerTcpBinding?

C# Can';是否在ASP.NET中不使用WCF NetPeerTcpBinding?,c#,asp.net,wcf,p2p,web-farm,C#,Asp.net,Wcf,P2p,Web Farm,我为web farms编写应用程序,我想在服务器应用程序之间创建一个简单的对等网络,以便它们可以相互传递消息。例如,在删除缓存项时进行协调,或增加共享计数器以更好地共享关键统计信息 但显然这是不可能的。我的点对点代码在控制台应用程序中工作得很好,但当我将代码添加到ASP.NET网站时,出现以下错误: 当前上下文下不支持系统事件通知。例如,服务器进程可能不支持全局系统事件通知 嗯,为什么不呢?看来这将是非常有用的 有没有办法解决这个问题?您的服务运行在哪个版本的IIS上(假设是IIS)?IIS 6

我为web farms编写应用程序,我想在服务器应用程序之间创建一个简单的对等网络,以便它们可以相互传递消息。例如,在删除缓存项时进行协调,或增加共享计数器以更好地共享关键统计信息

但显然这是不可能的。我的点对点代码在控制台应用程序中工作得很好,但当我将代码添加到ASP.NET网站时,出现以下错误:

当前上下文下不支持系统事件通知。例如,服务器进程可能不支持全局系统事件通知

嗯,为什么不呢?看来这将是非常有用的


有没有办法解决这个问题?

您的服务运行在哪个版本的IIS上(假设是IIS)?IIS 6比IIS 7有更多的限制-它只支持HTTP激活。同样,如果您试图从IIS 6中启动对等客户端,它可能会因为相同的原因被阻止-IIS无法将响应定向到正确的工作进程


您可以始终在web服务器上将该服务作为Windows服务实现,并使用命名管道与ASP.NET站点通信。(Windows服务将承载对等端点和命名管道端点,站点将使用命名管道客户端。该服务将使用[ServiceBehavior]属性作为单个实例运行。

由于绑定保存其上下文的方式,我不确定这是否可行


我建议使用普通的http wcf服务,并在配置数据库中注册每个主机,甚至使用web服务器需要处理的主题和post事件。

我尝试在Windows server 2008 R2(IIS 7.5)上运行一个小型对等应用程序我得到的第一个错误是没有安装PNRP。通过安装PNRP修复后,我得到了完全相同的错误。当我尝试在Windows 7上的开发服务器上托管它时,我也得到了相同的错误。我正在运行安装了PNRP的Windows 2008/IIS 7,因为默认情况下它不是在服务器2008上运行的。运行Windows服务对等应用程序在这一点上,与IIS进程通信听起来很有趣,但重点是在IIS服务器之间创建一些团队合作,而不添加许多额外的依赖项。如果需要额外的进程,我认为在这一点上,使用完整的分布式缓存系统(如Velocity或Memcached)可能是有意义的。我正在尝试这样做完全相同的事情,因此在这里结束。我很难让多个web应用程序通过某种广播机制相互通信。我已经尝试了UDP,但在web应用程序中也不起作用。同样的问题,看起来可能是WAS托管的限制。
[InvalidOperationException: System event notifications are not supported under the current context. Server processes, for example, may not support global system event notifications.]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +10259418
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +539
   // My code here where I call the proxy object's method to start the WCF call