У меня проблемы с настройкой службы WCF для работы в режиме сеанса.В качестве теста я написал этот простой сервис:
[ServiceContract]
public interface IService1
{
[OperationContract]
string AddData(int value);
}
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
internal class Service1 : IService1,IDisposable
{
private int acc;
public Service1()
{
acc = 0;
}
public string AddData(int value)
{
acc += value;
return string.Format("Accumulator value: {0}", acc);
}
#region IDisposable Members
public void Dispose()
{
}
#endregion
}
Я использую привязку Net.TCP с конфигурацией по умолчанию с включенным флагом надежного сеанса.Насколько я понимаю, такой сервис должен работать без проблем в режиме сессии.Но служба работает как в режиме вызова - каждый раз, когда я вызываю AddData, конструктор вызывается перед выполнением AddData, а после вызова вызывается Dispose ().Есть идеи, почему это может происходить?Возможно, я что-то упускаю?
примечание: я не знаю, связано ли это, но я использую VS2008 для запуска этого.
Обновление: я заметил здесь что wcftestclient не поддерживает сеанс с клиентами - возможно, это была моя проблема.На самом деле это была проблема.Подключение к сервису из простого консольного клиента подтвердило, что сервис работает как надо.