2009-08-05 2 views
1

Как я могу использовать сессию ASP.NET в WCF? или есть ли альтернативный способ использования «ASP.NET-сессии», например структуры в WCF, такой как хранение данных?Как использовать сессию ASP.NET в WCF?

+1

Что вы хотите достичь с помощью сеанса ASP.NET в службе WCF? Услуги WCF, как правило, «за звонок» - между двумя вызовами и несколькими одновременными вызывающими абонентами нет состояния. –

+0

marc_s: true, это типичный способ, но вы можете определенно иметь службы с состоянием (по крайней мере, в зависимости от вашей привязки) (см. Http://msdn.microsoft.com/en-us/library/ms730879.aspx) – veggerby

ответ

3

Попробуйте иметь взгляд как ASPCompatibityMode с WCF, и вы включите его и разделить сессию в сервисный метод

+0

Правда, но OP должен сначала убедиться, что это состояние сеанса ** ASP.NET **, в котором он нуждается. Возможно, ему просто нужен механизм _ like_ ASP.NET Session State. –

3

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

Существует, однако, обработка сеанса, встроенная в WCF, где вы можете указать это в контракте на обслуживание, используя параметр SessionMode атрибута ServiceContract.

См http://msdn.microsoft.com/en-us/library/ms733040.aspx для более подробной информации

0

В случае, если кто еще сталкивается этот вопрос (пытаясь используйте переменную SESSION в веб-приложении .NET, использующем службу WCF). Не беспокойтесь о [AspNetCompatibilityRequirements .......] или добавьте aspNetCompatibilityEnabled = "true" в web.config.

После игры со всем этим на некоторое время я узнал, что все, что мне нужно было сделать, это изменить каждый [WebMethod] в пределах _______. ASMX.CS до [WebMethod (EnableSession = true)].

Так что измените [WebMethod] на [WebMethod (EnableSession = true)]. Вот и все.

я узнал, что из http://weblogs.asp.net/stevewellens/archive/2009/04/05/using-session-state-in-a-web-service.aspx

Спасибо!

  • Бонсай
+0

Это работает с веб-методами, но если служба WCF является автономной, она не будет работать. http://blogs.msdn.com/wenlong/archive/2010/02/21/using-asp-net-sessions-from-wcf.aspx описывает, как это сделать подробно. – Serapth

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