WCF сервис с HttpContext - PullRequest
       33

WCF сервис с HttpContext

0 голосов
/ 07 августа 2010

У меня был веб-сервис, который я конвертировал в сервис wcf с тем же расширением asmx.У меня есть basicHttpbinding, так как мой сервис общается с различными клиентами, такими как java, perl и т. Д.

У меня была проверка, в которой был HttpContext.Current.Но я знаю, что это не будет работать в сервисе wcf.Я пытаюсь использовать RequestContext или OperationContext, но не могу это сделать.Я пытался использовать

[ServiceBehavior (InstanceContextMode = InstanceContextMode.PerSession)]

, но не помогло.Я звоню в сервис из soapUI для тестирования.

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Вам лучше использовать OperationContext при использовании служб WCF.Как вы всегда получите HttpContext.Current.Items всегда Null, который работает только во время ASP.NET.Поэтому добавьте следующий код: -

OperationContext.Current.Extensions.Add(extension);
1 голос
/ 07 августа 2010

Ок, так что я нашел решение.Есть несколько способов получить контекст HttpContext.Current.Либо мы можем использовать OperationContext, либо мы можем использовать режим AspNetCompatibilityRequirements, для которого установлено значение Allowed, а для aspNetCompatibilityEnabled установлено значение true в web.config.

В моем случае, когда я преобразовал службу asmx в службу wcf, мне также пришлось изменить обработчик HttpHandler, чтобы удалить и добавить путь asmx в System.ServiceModel.Activation.HttpHandler.

...