Как обрабатывается запрос веб-службы в ASP.Net - PullRequest
3 голосов
/ 19 сентября 2008

Когда клиент делает запрос веб-службы, как asp.net назначает экземпляр класса обслуживания для обработки этого запроса?

Создается ли новый экземпляр класса обслуживания для каждого запроса или происходит объединение в пул, или для обработки всех запросов используется единственный экземпляр?

1 Ответ

1 голос
/ 19 сентября 2008

Для классических сервисов ASMX вы определенно получаете новый экземпляр с каждым запросом, как запрос ASPX. Для службы WCF (.SVC) у вас есть больше опций, например, запуск в качестве одиночного.

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

То, что вы также можете сделать, это запустить службу Windows со службой WCF, которая всегда работает. Этот сервис будет прослушивать localhost на конечной точке, доступной только с той же машины. Затем вы можете вызвать сервисный вызов ASMX к сервису WCF локально. Это позволит вам всегда следить за тем, чтобы ваше состояние работало столько, сколько вам нужно, даже когда IIS перезапускает пул приложений. Естественно, вы также можете изменить безопасность службы Windows WCF, чтобы разрешить удаленный доступ с паролем, если вы хотите разрешить нескольким веб-службам использовать один и тот же хост службы для улучшения использования ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...