Как автоматически запускать файлы в папке app_start, если они опубликованы с использованием веб-развертывания

В моем проекте asp.net MVC4 у ​​меня есть несколько файлов .cs в папке app_start, которые необходимо инициализировать или выполнять задачи для каждой авторизации и т. д. Когда вы заходите на веб-сайт, им требуется довольно много времени для выполнения всех этих задач при запуске приложения. в первый раз. Можно ли автоматически запускать все файлы в папке app_start во время развертывания. Так что, когда кто-то заходит на сайт в первый раз, это не займет много времени.


person sam    schedule 27.11.2012    source источник


Ответы (1)


Взгляните на автоматический запуск вашего приложения

Добавьте это в свой applicationHost.config

<sites>    
     <site name="MySite" id="1">    
          <application path="/" 
                       serviceAutoStartEnabled="true" 
                       serviceAutoStartProvider="PreWarmMyCache" />    
     </site>    
</sites>
<serviceAutoStartProviders>
     <add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />
</serviceAutoStartProviders>

и следующее для предварительной загрузки вашей работы

public class PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient {

    public void Preload(string[] parameters) {

        // Perform initialization and cache loading logic here...

    }

}
person dove    schedule 27.11.2012
comment
Спасибо, Дэйв. Не могли бы вы подтвердить, должен ли я добавить это в web.config, как вы говорите, или в файл applicationHost.config, как описано в указанной вами ссылке. - person sam; 28.11.2012
comment
Большое спасибо. Не могли бы вы также указать, нужно ли мне заменить мой открытый класс MvcApplication: System.Web.HttpApplication { protected void Application_Start() открытым классом PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient { - person sam; 28.11.2012
comment
Нет не заменяет. Это отдельный класс, и он может поместить его в корень вашего веб-приложения или куда угодно, если пространство имен конфигурации serviceAutoStartProviders совпадает. - person dove; 28.11.2012
comment
Спасибо, Дэйв, выполнил все шаги, но получил сообщение об ошибке HTTP «Сервис недоступен» 503. Служба недоступна. Любая идея, что я делаю неправильно - person sam; 28.11.2012
comment
что-то очень не так 5420869/ дважды проверьте все параметры конфигурации и действия, описанные в этой статье. попробуйте применить одно изменение за раз, пока оно не сломается. - person dove; 28.11.2012