2009-10-20 3 views
1

Как я могу поделиться сеансом asp.net с сеансом wcf.Совместное использование состояния сеанса ASP.NET с сеансом WCF

Скажите, что у меня есть сеанс [«UserId»] в моем приложении asp.net. Я хочу получить доступ к этому в подписи WCF. Я включил aspNetCompatibilityEnabled = "true" в Webconfig & [ServiceContract(SessionMode=SessionMode.Required)] в WCF. Я не хочу проходить эту сессию в качестве аргумента. Как я могу это достичь?

ответ

2

Вы не можете совместно использовать сеанс ASP.NET с экземпляром WCF, поскольку они находятся в разных доменах приложений и могут быть на разных компьютерах.

Вот хорошая статья о Instance Context Sharing, которая поможет вам с «сессией персистентности» в WCF. Затем речь идет о передаче общих данных по проводу (или с использованием общего ресурса/базы данных и т. Д.)

0

Если вы добавите это под <serviceModel> в свой Web.config, он будет работать.

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

Это, вероятно, немного снижает производительность.

Смежные вопросы