首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PollingDuplexHttpBinding和应用程序池回收

PollingDuplexHttpBinding和应用程序池回收
EN

Stack Overflow用户
提问于 2011-11-14 14:40:33
回答 1查看 198关注 0票数 0

我使用PollingDuplexHttpBinding,以便客户端可以在我的应用程序中交换消息。客户端是通过RegisterClient()方法注册的,该方法将它们添加到静态字典中以供将来使用。

代码如下所示:

代码语言:javascript
复制
[ServiceContract(Namespace = "...", CallbackContract = typeof(MyServiceCallback))]
public class MyService
{
    public static Dictionary<string, MyServiceCallback> Clients =
        new Dictionary<string, MyServiceCallback>();

    [OperationContract]
    public void RegisterClient(string name)
    {
        Clients[name] =
            OperationContext.Current.GetCallbackChannel<MyServiceCallback>();
    }

    public static void SendMessage(string name, string message)
    {
        Clients[name].SendMessage(message);
    }
}

[ServiceContract]
public interface MyServiceCallback
{
    [OperationContract(IsOneWay = true)]
    void SendMessage(string message);
}

除了应用程序池被回收之外,一切都运行得很好。

当然,我意识到静态的东西在这方面并不理想。

哪里是保存我的客户引用的好地方,以便它们在应用程序池重塑中幸存下来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-14 14:47:18

我不认为你可以让他们在应用程序池回收中幸存下来,因为对于这一点,你需要持久化并重新创建通道……

一种更好的方法是将你的WCF服务托管在Windows服务中(没有应用程序池回收)来处理这类事情……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8118133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档