HttpContext в WCF

#wcf

#wcf

Вопрос:

Чтобы использовать HttpContext, я изменил app.config и добавил его <serviceHostingEnvironment aspNetCompatibilityEnabled="true"> внутрь <system.serviceModel> .

Я также добавил using System.Web в свой класс реализации.

Проблема в том, что httpcontext недоступен в моем классе реализации после выполнения необходимых шагов.

Чего мне не хватает?

Ответ №1:

Смотрите здесь: Службы WCF и ASP.NET

В пределах домена приложения функции, реализованные средой выполнения HTTP, применяются к ASP.NET содержимое, но не в WCF. Многие HTTP-специфичные функции ASP.NET платформа приложения не применяется к службам WCF, размещенным внутри домена приложения, который содержит ASP.NET содержимое. Примерами этих функций являются следующие:

HttpContext: Current всегда равен нулю при доступе из службы WCF. Вместо этого используйте RequestContext.

Комментарии:

1. Я вижу несколько примеров, в которых говорится, что мы можем использовать httpcontext.current, если мы установим для AspNetCompatibility значение true в app.config.

2. Конечно, но если вы действительно хотите это сделать (см. Ответ Aliostad на этот вопрос), но я уверен, что есть несколько причин, по которым это не включено по умолчанию.

3. и я хочу знать, почему он не включен. все еще сталкиваюсь с проблемой:-(

Ответ №2:

К нему можно получить доступ HttpContext в WCF , если вы настроили AspNetCompatibility в web.config и в реализации сервиса.

Смотрите здесь.

Комментарии:

1. Для совместимости с AspNetCompatibility в моем app.config установлено значение true. я упоминал об этом в своем вопросе, но я думаю, что что-то пошло не так, когда я отправлял вопрос.

2. Смотрите мою ссылку. Вам также нужно AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

3. хорошо, я установил требования к совместимости AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode. Требуется)] но по-прежнему httpcontext недоступен. 🙁

4. Используете ли вы IIS 7 и .NET 4?

5. Я полагаю, что я использую IIS 5.1 и .NET 3.5. Я могу использовать httpcontext в моем обычном ASP. Сетевое приложение, но в моей службе WCF я не могу его использовать.

Ответ №3:

Почему вы не используете OperationContext? http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontext.aspx