Небольшое примечание о WCF: при размещении службы WCF, работающей на сайте ASP.NET, вам необходимо включить режим aspnetCompatability, это можно сделать в Wen.config
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
или по отдельности науровень обслуживания, используя
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CalculatorService : ICalculatorSession
{//Implement calculator service methods.}
Вы можете проверить подробности со страницы Microsoft , это должно дать вам больше информации о режиме. Включение этого позволит WCF работать под ASP.NET конвейер вместо создания модулей для подключения к событиям конвейера, это также позволит вам получить доступ к объекту HttpContext, который в противном случае будет нулевым, если параметр не включен
Квота из указанной статьи:
HttpContext: ток всегда равен нулю при доступе из службы WCF.Вместо этого используйте RequestContext.
Значение RequestContext может быть нулевым.Поскольку роль контекста запроса состоит в том, чтобы связывать запросы с ответами, не имеет смысла иметь контекст запроса, когда у вас нет ответа, и поэтому в этом случае контекст устанавливается в нуль.Для односторонней операции поверх модели запрос / ответ сервер получает запросы, но не отправляет ответ клиенту.Поэтому, если RequestContext неожиданно равен нулю, сначала проверьте, является ли контракт операции IsOneWay.
Qouted from https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.channels.requestcontext?view=netframework-4.7.2
Контекст запроса равен нулю, когда односторонний ответ указан на OperationContract заголовок.
RequestContext можно получить с помощью
rcontext = operationContext.RequestContext