簡體   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