J'ai un service Duplex (Singleton), qui fonctionnait avec WSDualHttpBinding, et après l'avoir changé en duplex CustomBinding pour supporter BinaryEncoding pour des raisons de performances, il a cessé de fonctionner. Les traces de problème vers GetCallBackChannel retournent toujours avec le même HashCode (dans cette instance de service) pour toutes les demandes de client et la List pense qu'il existe déjà dans les canaux souscrits et ne les ajoutera pas à la liste des Abonnés. J'utilise C# 3.5WCF CustomBinding + Duplex + BinaryEncoding + Pas de sécurité Impossible de rappeler
S'il vous plaît suggérer une solution ..
Merci à l'avance ...
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);
}
}
}