我有一个双工服务(单身人士),它曾经与WSDualHttpBinding一起工作,并且在出于性能原因改变为双工CustomBinding以支持BinaryEncoding后,它停止工作。跟踪GetCallBackChannel的问题总是针对所有客户端请求使用相同的HashCode(在该服务实例内)返回,List认为它已存在于订阅的频道中,并且不会添加到订阅者列表中。我使用C#3.5WCF CustomBinding + Duplex + BinaryEncoding +没有安全性无法回拨
请提出一个解决方案..
在此先感谢...
public void Subscribe(string topicName)
{
try
{
Notifier.IPublishing subscriber = OperationContext.Current.GetCallbackChannel<IPublishing>();
Notifications.Filter.AddSubscriber(topicName, subscriber);
}
catch (Exception ex)
{
ErrorLog.WriteToLog("Subscribe\n" + ex.ToString());
}
}
static public void AddSubscriber(String topicName, IPublishing subscriberCallbackReference)
{
lock (typeof(Filter))
{
if (SubscribersList.ContainsKey(topicName))
{
if (!SubscribersList[topicName].Contains(subscriberCallbackReference))
{
SubscribersList[topicName].Add(subscriberCallbackReference);
}
}
else
{
List<IPublishing> newSubscribersList = new List<IPublishing>();
newSubscribersList.Add(subscriberCallbackReference);
SubscribersList.Add(topicName, newSubscribersList);
}
}
}