Я предполагаю, что вы ссылаетесь на файл Global.asax в приложении ASP.NET MVC.Обратите внимание, что ваш global.asax расширяет System.Web.HttpApplication, например:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
// (snip)
}
protected void Application_Init()
{
// Why is this running twice?
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
В основном создается несколько экземпляров HttpApplication для обслуживания нескольких входящих HTTP-запросов .После завершения запроса экземпляр HttpApplication возвращается в пул для повторного использования, аналогично пулу соединений с базой данных.
Невозможно предсказать, сколько экземпляров HttpApplication будет создано, в основном это работник ASP.NET.В процессе будет создано столько запросов, сколько необходимо для удовлетворения запросов HTTP-запросов к вашему веб-приложению.Ваш Application_Init () вызывается дважды, потому что создаются 2 экземпляра HttpApplication, даже если ваш сайт запущен только вами.Возможно, в вашем HTML-файле есть ссылки на другие серверные ресурсы (файлы JavaScript, CSS и т. Д.) Или, возможно, запрос Ajax.
Если вы хотите гарантировать, что код запускается только один раззатем поместите его в метод Application_Start () в вашем Global.asax. Или используйте Bootstrapper