【问题标题】:Save and rehydrate state of .net web application保存和补充 .net Web 应用程序的状态
【发布时间】:2018-09-05 14:37:43
【问题描述】:

我有一个 Web 应用程序,该应用程序有一些与之相关联的状态可能不会丢失。所以我想我将使用Application_StartApplication_End 事件来重新水化并将该状态从/存储到数据库。但我正在 Azure 中进行测试,并且从未调用过 Application_End

这是我的测试代码 global.asax:

public class Application : System.Web.HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        System.Diagnostics.Trace.WriteLine("APPLICATION STARTED.");
    }

    void Application_End(object sender, EventArgs e)
    {
        System.Diagnostics.Trace.WriteLine("APPLICATION ENDED.");
    }

    protected void Application_Start()
    {

    }
}

“APPLICATION_END”永远不会显示在应用程序日志中。

【问题讨论】:

  • 注意:如果状态不能丢失:那么,您需要随时保存到可靠的存储。其他一切都只是“这可能会奏效,在美好的一天”。所以只要这是“如果保留状态会更方便:很好

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


【解决方案1】:

您可以尝试使用:

class Foo : System.Web.Hosting.IRegisteredObject
{
    public void Stop(bool immediate) {...}
}

with(一次,在启动期间):

var obj = new Foo();
System.Web.Hosting.HostingEnvironment.RegisterObject(obj);

Stop 方法应该(或至少:可能)在关闭时被调用。当immediatefalse 时,您可能希望序列化状态。

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    相关资源
    最近更新 更多