Запуск приложения ASP.NET без использования Global.asax

Я разрабатываю плагин как приложение для веб-сайта. Из-за требований он будет находиться на том же физическом пути и в том же пуле приложений, что и основной веб-сайт, для которого у меня нет исходного кода. Таким образом, они оба используют один и тот же файл Web.config и некоторые другие зависимости.

Мне нужно установить лицензию для сторонней зависимости при запуске приложения, но у меня нет возможности получить доступ к коду Global.asax, так как этот код принадлежит другой компании.

Итак, есть ли альтернативный способ добавления событий к запуску приложения без участия Global.asax, или это мое единственное решение для наследования/расширения текущего Global.asax?


person zidar    schedule 07.10.2009    source источник


Ответы (2)


Вы можете использовать HTTPModule:

public class MyModule : IHttpModule
{
    #region IHttpModule Members

    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        ...
    }

    #endregion
}

web.config

<httpModules>
  <add name="MyModule" type="MyNamespace.MyModule, MyAssembly" />
</httpModules>
person Arthur    schedule 07.10.2009

Вы можете использовать WebActivator, если знаете, что все ваши целевые проекты будут .NET 4.0 или выше.

https://github.com/davidebbo/WebActivator

[assembly: WebActivatorEx.PostApplicationStartMethod(typeof(Bootstrapper), "Start")]

public class Bootstrapper
{
    public static void Start()
    {
        // Put everything in motion here
    }
}

Обратите внимание, что у вас также есть возможность запуска до или после функции Global.asax Application_Start() — этот пример запускается позже.

person NightOwl888    schedule 14.06.2013