Asp.Net Mvc - 将事物存储在在 Application_Start 中重新初始化的静态变量中是不是安全

Posted

技术标签:

【中文标题】Asp.Net Mvc - 将事物存储在在 Application_Start 中重新初始化的静态变量中是不是安全【英文标题】:Asp.Net Mvc - Is it safe to store things in a static variable that's reinitialized in Application_StartAsp.Net Mvc - 将事物存储在在 Application_Start 中重新初始化的静态变量中是否安全 【发布时间】:2013-03-08 20:17:53 【问题描述】:

我有一些关于当前部署的一般非关键信息,这些信息收集在 Application_Start 中,当前存储在公共静态只读字符串中。

这只是一个小字符串,所以我不担心内存使用或任何事情。

从应用程序域回收的角度来看,这是否有效?是否会出现这样一种情况,即我的静态值中的值会简单地消失而不被重新初始化?

【问题讨论】:

如果异常阻止该值被正确填充(例如,您从配置文件中读取它并且配置文件已损坏),那么对应用程序的第一个请求将显示错误(我认为?)但所有后续请求都将以 null 值进行。 【参考方案1】:

如果在填充变量之前发生异常并且异常被吞下,则字符串将为空。

【讨论】:

嗯......是的......这适用于您分配变量的任何时候。该问题专门针对静态变量、初始化和应用程序回收

以上是关于Asp.Net Mvc - 将事物存储在在 Application_Start 中重新初始化的静态变量中是不是安全的主要内容,如果未能解决你的问题,请参考以下文章

将Asp.Net WebAPI从AngularJS App的Asp.Net MVC站点移动到一个单独的站点

如何将图片存储在 asp.net mvc 应用程序的 azure blob 存储中?

在 Asp.Net MVC 应用程序中使用 Structuremap 将 ISession 注入我的存储库

将 DbDataReader 的结果转换为 ASP.NET MVC 4 中的数据库模型,来自使用 ADO.NET 的存储过程 [重复]

使用存储库时,ASP.NET MVC 中业务逻辑的最佳位置是啥?

C# ASP.NET MVC:提交按钮后不会存储数据