在将应用程序托管在IIS上时,如何启动c#方法?

时间:2018-07-18 13:28:08

标签: c# asp.net .net iis asp.net-web-api

我想在将代码托管在IIS上时启动一些方法。到目前为止,我通过从global.asax application_start方法调用该方法来尝试了相同的方法。但是然后我必须在浏览器上打开一次api。

例如:-我有一个创建sql依赖关系的方法,我希望在IIS部署时立即激活它。现在我必须浏览api一次以激活sql依赖关系。

我正在使用框架4.5和MVC Web API

我不想使用窗口服务或任何控制台解决方案

请帮帮我!!!

1 个答案:

答案 0 :(得分:1)

大多数服务被设计为无状态或延迟加载,以减少内存消耗,因此许多代码仅在需要时运行。对于不同版本的ASP.NET和MVC,有不同的代码可以进行预热。您能详细说明一下它是什么版本吗?它是什么模式,形式还是MVC? 5还是核心?

这是ASP.NET表单的官方示例: https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/caching-data/caching-data-at-application-startup-cs

通过System.Web.Hosting.IProcessHostPreloadClient预加载IIS托管的old-version-.NET应用程序 这是示例: https://weblogs.asp.net/scottgu/auto-start-asp-net-applications-vs-2010-and-net-4-0-series

对于MVC核心,

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .YourFunction(args) //< == add an extension to IWebHostBuilder do your work
            .UseStartup<Startup>()
            .Build();
}

在这里您可以了解更多信息: https://wildermuth.com/2017/07/06/Program-cs-in-ASP-NET-Core-2-0