如何在应用程序启动时设置应用程序变量

时间:2015-11-25 15:29:33

标签: c# iis

我尝试在IProcessHostPreloadClient类型的类中设置Application对象(代码在应用程序初始化时运行,在此解释:http://www.codeproject.com/Articles/795265/IIS-Asp-net-warm-up-Auto-Start-Application):

public class DeserializeEdocsProvider : System.Web.Hosting.IProcessHostPreloadClient 
{
    public void Preload(string[] parameters)
    {
        ... 
            //the following fails with message:
            //"Object reference not set to an instance of an object."
            HttpContext.Current.Application["testtest"] = "test";
        ...
    }
}

我想要的只是在应用程序启动时(在应用程序池回收之后)创建一个对象,并在以后访问该对象时,在对Web应用程序的其他请求中。任何解决方案都表示赞赏。

1 个答案:

答案 0 :(得分:1)

在课堂上有一个静态变量/属性,比如MyVar,说MyClass

public class MyClass
{
    ...
    private static int _myVariable; 
    public static int MyVar {get; set;} 
    ...
}

现在,在Application_Start()中设置Global.asax方法内的值(如果Global.asax不添加一个):

protected void Application_Start(object sender, EventArgs e)
{
    ...
    MyClass.MyVar = 100;
    ...
}

稍后,从任何地方访问变量(它是一个公共静态属性):

...
lblMyLabel.Text = MyClass.MyVar.ToString();
...