每个ASP.NET应用程序实例都有持久存储吗?

时间:2013-10-09 07:04:47

标签: asp.net asp.net-mvc-3 iis azure iis-7

在我在Windows Azure中托管的ASP.NET MVC3应用程序中,我想知道应用程序重启的次数(以便我知道启动顺序是正确的)。所以我需要某种“变量”,我可以从Application_Start()内部“增加”,但它应该以某种持久的方式存储,否则它将无法在应用程序重启后继续存在。存储需要是每个应用程序实例。

当然我可以使用系统注册表或一些临时文件,但我想应该有更好的东西。

我可以在我的场景中使用ASP.NET基础结构中的任何内容吗?

2 个答案:

答案 0 :(得分:2)

您可以使用Windows Azure Table Storage。只要大声思考,你就可以有一个名为ApplicationRestarts的表,每次应用程序启动时,你都可以将一个实体放入该表中。该实体可以具有以下属性:

  • PartitionKey :可能是重新启动应用程序的日期/时间。或者它可以是角色实例名称。
  • RowKey :与上述相同。如果您选择日期/时间作为PartitionKey,则角色实例名称可以是RowKey,反之亦然。
  • RoleName :角色的名称(以防您在捕获该角色时遇到任何问题)。
  • RoleInstanceName :角色实例的名称。
  • RestartTimestamp :重新启动日期/时间角色实例。
  • 元数据:您可能想要捕获的其他一些信息。

答案 1 :(得分:0)

如果您使用的是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