Разница между WebOperationContext.current и HttpContext.Current

Я разрабатываю веб-и мобильные приложения для своих клиентов. В моей нынешней архитектуре многие ресурсы совместно используются веб-доступом и мобильным доступом. Страница aspx может отображаться в Интернете и вызываться для просмотра в Интернете в мобильном приложении. Мой вопрос:

В чем разница между WebOperationContext.Current и HttpContext.Current объект?

Насколько я понимаю, это тот же объект, но я заметил, что в некоторых случаях WebOperationContext.Current имеет значение null, и я не понимаю, почему.

12 голосов | спросил tdelepine 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 11 Sep 2013 21:25:58 +0400 2013, 21:25:58

1 ответ


0

WebOperationContext обычно используется в методе REST WCF, чтобы метод мог получить доступ к входящему запросу и исходящему ответу.

HttpContext обычно используется на странице веб-форм ASP.NET или веб-методе для веб-службы ASMX, когда входящий запрос и исходящий ответ могут быть доступным.

Они предназначены для разных типов проектов (WCF REST /ASP.NET WebForms), поэтому вы не должны использовать их в неправильном типе проекта.

О том, когда значение .Current равно null, это еще сложнее. Даже если вы вызываете это свойство в правильном типе проекта, вы должны убедиться, что вызов сделан в правильном потоке. Только в потоке, который обрабатывает запрос (который также отправляет ответ), вы можете получить доступ к текущему контексту. В любых других темах (фоновых или новых созданных вами) вы получаете null. Это было известно в течение многих лет, но новички все еще иногда ошибаются.

ответил Lex Li 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 13 Sep 2013 07:29:54 +0400 2013, 07:29:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132