Вы можете получить доступ к HttpContext в ASP.NET внутри любой службы WCF, размещенной в ASP.NET, если вы включите совместимость. Это делается в два этапа:
- Примените атрибут AspNetCompatibilityRequirementsAttribute к своему классу обслуживания и установите для свойства RequirementsMode значение Required
Убедитесь, что вы включили совместимость, настроив следующее:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />
</system.serviceModel>
Как только вы это сделаете, вы можете в любой момент получить доступ к текущему экземпляру HttpContext, используя статическое свойство Current . Например:
foreach(HttpCookie cookie in HttpContext.Current.Request.Cookies)
{
/* ... */
}
Обратите внимание, что включение интеграции со средой выполнения ASP.NET влечет за собой дополнительные накладные расходы для каждого запроса, поэтому, если вам это не нужно, вы можете сэкономить некоторую производительность, не включая ее и просто используя вместо этого среду выполнения System.ServiceModel.Web , У вас есть доступ практически ко всей необходимой информации, используя классы HttpRequestResponseMessageProperty и HttpResponseMessageProperty .
Дополнительные сведения по этому вопросу см. В этом разделе MSDN под названием WCF и ASP.NET .
.