#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