我有一個雙工服務(單身人士),它曾經與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);
}
}
}