HttpContext.Current в службе WCF во время второго запроса - PullRequest
0 голосов
/ 02 июля 2010

Существует приложение Silverlight (4.0), которое вызывает WCF-сервис.Во время первого вызова WCF-сервиса некоторые данные получаются из объекта HttpContext.Current.Session.

Во время второго вызова WCF-сервиса HttpContext.Current равен нулю ... У вас есть идеи, почему (и какисправить это)?

Текущие настройки:

  1. Параметры "aspNetCompatibilityEnabled" и "runAllManagedModulesForAllRequests" имеют значение true в файле web.config,
  2. Сервисопределение выглядит следующим образом:

    [ServiceContract (Namespace = "")]

    [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] * ​​1015 *

    открытый класс ElitaDataService {

PS Целью использования HttpContext из службы WCF является проверка: a.если текущий пользователь зарегистрирован (эта информация хранится в сеансе);б.если пользователь работает с собственными данными (например, смотрите только собственные данные заказа).

PPS Я видел, что OperationContext предлагается использовать вместо HttpContext, но не ясно, какие свойства в OperationContext могут помочьразрешить пункты "а" и "б".

Пожалуйста, сообщите, спасибо.

Ответы [ 2 ]

1 голос
/ 02 июля 2010

Итак, в вашем файле web.config для aspNetCompatibilityEnabled установлено значение true, но есть ли у вас этот атрибут в классе [ServiceContract]?

[AspNetCompatibilityRequirements(RequirementsMode =
    AspNetCompatibilityRequirementsMode.Allowed)]

(Вы можете использовать Allowed или Required)

То, что хост-приложение позволяет совместимость с asp.net, не означает, что оно включено в отдельных службах.

0 голосов
/ 08 июля 2010

Это волшебство ... теперь HttpContext.Current не равен нулю при каждом запросе ... не знаю почему ... Если вы знаете, почему это возможно - пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...