【问题标题】:How to automatically run files under app_start folder if published using webdeploy如果使用 webdeploy 发布,如何自动运行 app_start 文件夹下的文件
【发布时间】:2012-11-14 22:50:34
【问题描述】:

在我的 asp.net MVC4 项目中,我的 app_start 文件夹下的 .cs 文件很少,需要初始化或执行每个授权任务等。当您访问该网站时,它们会花费大量时间来执行所有这些任务在应用程序开始第一次。部署时是否可以自动运行 app_start 文件夹下的所有文件。因此,当有人第一次访问该网站时,它不会花费太多时间。

【问题讨论】:

    标签: web-applications asp.net-mvc-4 web-deployment webdeploy app-startup


    【解决方案1】:

    看看auto-starting your application

    将此添加到您的 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...
    
        }
    
    }
    

    【讨论】:

    • 谢谢 Dave,您能否确认我是否必须按照您的说法将其添加到 web.config 中,或者按照您引用的链接中的说明添加到 applicationHost.config 文件中。
    • 非常感谢。能否请您指导我是否必须将我的公共类 MvcApplication : System.Web.HttpApplication { protected void Application_Start() 替换为公共类 PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient {
    • 不,它不会取代。它是一个单独的类,只要 serviceAutoStartProviders 配置命名空间匹配,它就可以将它放在您的 Web 应用程序的根目录或任何您想要的位置。
    • 感谢 dave,已执行所有步骤,但出现 Service Unavailable HTTP 错误 503。服务不可用。知道我做错了什么
    • 出了点问题stackoverflow.com/questions/5420869/… 仔细检查该文章中的所有配置设置和步骤。尝试一次应用一项更改,直到它中断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2017-01-29
    • 1970-01-01
    • 2017-11-18
    • 2021-04-01
    • 2020-11-27
    • 2014-08-14
    相关资源
    最近更新 更多