繁体   English   中英

不能在ASP.NET中使用WCF NetPeerTcpBinding?

[英]Can't use WCF NetPeerTcpBinding in ASP.NET?

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

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

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

[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

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

有什么办法可以解决这个问题?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM