Обработчик событий живет всю жизнь вашего приложения, поэтому вам нужно добавить его только один раз, а не добавлять его при каждом запросе.Само событие будет запускать каждый запрос, и каждый раз будет вызываться только один обработчик.
Добавьте его к Application_Start в global.asax, а не Application_BeginRequest или лучше,вместо этого создайте модуль HTTP.
Кроме того, я думаю, вам может даже не понадобиться обработчик событий .Метод с текущим именем будет вызываться по соглашению, аналогично Page / Control AutoEventWireup (например, Page_Load).Просто отметьте, что это может иметь проблемы в приложениях ASP.NET MVC, как сообщают некоторые люди.Итак, я предлагаю переименовать функцию, добавить обработчик событий в Application_Start или, что лучше, в новый созданный вами модуль HTTP .