Global.asax против IhttpHandler для веб-сервиса?

В настоящее время я использую собственный класс IHttpHandler для анализа запросов и отправки ответов. Есть ли преимущества в использовании каких-либо методов global.asax?


person chobo    schedule 11.05.2011    source источник
comment
Какие методы global.asax - это даже не класс. . .   -  person Wyatt Barnett    schedule 12.05.2011
comment
Я смотрел метод BeginRequest.   -  person chobo    schedule 12.05.2011
comment
Чего вы хотите достичь с помощью Global.asax?   -  person Greg B    schedule 12.05.2011


Ответы (2)


Если вы имеете в виду события HttpApplication против IHttpHandler, они ре не совсем сопоставимы.

События HttpApplication обычно используются из IHttpModule для перекрестных -решение проблем, которые применимы (в принципе) ко всем HTTP-запросам.

Этот вопрос объясняет различия между IHttpModule и IHttpHandler.

person Mauricio Scheffer    schedule 11.05.2011
comment
Довольно хорошая статья, но я до сих пор не совсем понимаю, есть ли какое-то преимущество в том, чтобы помещать определенные аспекты моего веб-сервиса в httpmodule. Я думаю с точки зрения производительности. - person chobo; 12.05.2011
comment
@chobo: производительность здесь не при чем. Это все равно, что спрашивать, что быстрее: молоток или отвертка: это разные инструменты для разных вещей. - person Mauricio Scheffer; 12.05.2011

Что именно ты пытаешься сделать?

IHttpHandler полезен, когда вам нужен точный контроль над HTTP-запросом / ответом, однако обычно это происходит при разработке фреймворка - в большинстве случаев то же самое можно достичь в другом месте.

IHttpHandler, безусловно, не часто используется для веб-служб, для этого вам следует изучить либо использование WCF или с помощью веб-службы ASP.Net (если вы ориентируетесь на платформу .Net 2.0, где WCF недоступен). Использование специального набора инструментов для веб-сервисов значительно упростит предоставление вашей услуги единообразным способом (через SOAP, JSON и т. Д.)

Я не совсем понимаю, как здесь используется global.asax - global.asax, ну ... global. Все, что вы здесь делаете, будет применяться ко всему веб-приложению, поэтому, в частности, любая обработка запросов, которые вы здесь выполняете, будет применяться ко всем запросам, которые достигают вашего приложения. Это не то место, где вам следует внедрять веб-службы.

person Justin    schedule 11.05.2011
comment
Сначала я пробовал использовать WCF, но мне пришлось слишком долго учиться, чтобы заставить его работать с POST-запросами XML, поэтому я использовал обработчик. В своем сообщении я понял, есть ли какое-либо преимущество в производительности при использовании global.asax (или httpmodules) для определенных частей веб-службы, таких как настраиваемая аутентификация и проверка источника запроса? Какая разница? - person chobo; 12.05.2011