2012-03-29 5 views
3

Я пытаюсь отключить сеанс для службы WCF, изменяя контракт на обслуживаниеОтключить сеанс для службы WCF

[ServiceContract(Namespace = "http://company.com/Services/", SessionMode = SessionMode.NotAllowed)] 
public interface IService 
{ } 

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class Service: IService 
{ } 

Но я шаг в операции с отладчиком, я могу видеть, что HttpContext.Current.Session является действительный объект.

Что мне не хватает для разблокированного состояния сеанса для работы WCF?

ответ

0

Вы можете использовать контекстный режим экземпляра. см: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

У вас есть 3 варианта:

  • Синглтон, только один экземпляр службы разделяют все звонки
  • за одну сессию, одной сессии до тех пор пока клиент прокси закрыт
  • на вызов, после того, как звонок возвращается

Звучит так, что за вами звоните. Вы можете увидеть объект сеанса в отладчике, но он будет удален сразу после вызова.

2

Это старый вопрос, но для отключения сеанса ASP.Net RequirementsMode должен быть AspNetCompatibilityRequirementsMode.NotAllowed