在我 ASP.NET 托管在Windows Azure中的MVC3应用程序中,我想知道应用程序重新启动了多少次(以便我知道启动顺序是正确的(。所以我需要某种"变量",我可以从内部"递增"Application_Start()
但它应该以某种持久的方式存储,否则它根本无法在应用程序重新启动后幸存下来。存储需要按应用程序实例进行。
当然,我可以使用系统注册表或一些临时文件,但我想应该有更好的东西。
ASP.NET 基础结构中是否有任何可用于我的方案的内容?
使用Windows Azure Table Storage
。只要大声思考,你可以有一个名为 ApplicationRestarts
的表,每次应用程序启动时,你都可以将一个实体放入该表中。该实体可以具有以下属性:
- 分区键:可以是重新启动应用程序的日期/时间。或者它可以是角色实例名称。
- 行键:同上。如果选择日期/时间作为分区键,则角色实例名称可以是 RowKey,反之亦然。 角色
- 名称:角色的名称(以防万一您在捕获该角色时感到不安(。 角色实例
- 名称:角色实例的名称。 重新启动
- 时间戳:角色实例重新启动的日期/时间。
- 元数据:您可能想要捕获的其他一些信息。
如果您使用的是 Windows Azure 虚拟机,则可以创建一个将在回收池事件后触发的 powershell 脚本。
http://blogs.technet.com/b/wincat/archive/2011/08/25/trigger-a-powershell-script-from-a-windows-event.aspx
更多有用的链接:
https://webmasters.stackexchange.com/a/17633
https://stackoverflow.com/a/13623638/1384539