global.asax中的常量

时间:2012-06-04 17:23:11

标签: asp.net .net asp.net-4.0

在global.asax中使用常量是个好主意吗?

1 个答案:

答案 0 :(得分:4)

总是这样,你在这个变量中持有什么?

我将主要设置( READ ONLY )保留在web.config区域的<appSettings>文件中,例如:

<appSettings>
   <add key="AmazonS3:CalendarPath" 
        value="http://mycloud.s3-eu-west-1.amazonaws.com/Calendar/" />
</appSettings>

并使用

访问此类值
string calPath = System.Configuration.ConfigurationManager.AppSettings["AmazonS3:CalendarPath"];

在我的视图或控制器中。

这是一个可以容纳只读变量的好地方,如果您的Web应用程序是否构建,编译或显示所有源文件,您可以轻松地将变量更改为你需要,无需打开编译文件,更改它并再次编译项目...节省了很多麻烦,并为洞应用程序设置提供了一定的动态。


如果另一方面你需要一种 READ / WRITE 方法来保存应用程序中的变量,你有3种方法,都有利有弊

  1. 使用会话状态保存变量这是最常用的,但在云平台上很糟糕,因为请求可以更改服务器和接收用户的继续请求的新服务器,没有会议

  2. 使用Cookie保存用户变量 Cookie可以由用户动态修改,因此我们只使用它来保存稍微更改的设置,例如UI定义。

  3. 使用缓存层来保存变量这是云平台中最常用的,因为您不仅可以保存设置,还可以保存您访问过的大部分数据时间。

  4. global.asax上还有 Application Settings 女巫在经典ASP时代被用尽了,从那以后我从来没有使用它们,因为它们具有与会话变量,女巫被放置在内存中......任何应用程序池重置,任何新构建,所有会话都将丢失。

    您还可以搜索大量帖子,以便更好地了解在ASP.NET项目中保存变量跨应用程序的所有选项。