Ответ 1
WebOperationContext
обычно используется в методе REST WCF, чтобы способ мог получить доступ к входящему запросу и исходящему отклику.
HttpContext
обычно используется на странице ASP.NET WebForms или веб-методе веб-службы ASMX, когда доступен доступ к входящему запросу и исходящему отклику.
Они предназначены для разных типов проектов (WCF REST/ASP.NET WebForms), поэтому вы не должны использовать их в неправильном типе проекта.
О том, когда значение .Current
равно null
, это еще сложнее. Даже если вы вызываете это свойство в правильном типе проекта, вам нужно убедиться, что вызов выполнен в правильном потоке. Только в потоке, обрабатывающем запрос (который также отправляет ответ), вы можете получить доступ к текущему контексту. На любых других потоках (фоновые потоки или созданные вами потоки) вы получаете null
. Это известно уже много лет, но новички по-прежнему иногда ошибаются.