在global.asax中使用常量是个好主意吗?
答案 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种方法,都有利有弊
使用会话状态保存变量这是最常用的,但在云平台上很糟糕,因为请求可以更改服务器和接收用户的继续请求的新服务器,没有会议
使用Cookie保存用户变量 Cookie可以由用户动态修改,因此我们只使用它来保存稍微更改的设置,例如UI定义。
使用缓存层来保存变量这是云平台中最常用的,因为您不仅可以保存设置,还可以保存您访问过的大部分数据时间。
在global.asax
上还有 Application Settings 女巫在经典ASP时代被用尽了,从那以后我从来没有使用它们,因为它们具有与会话变量,女巫被放置在内存中......任何应用程序池重置,任何新构建,所有会话都将丢失。
您还可以搜索大量帖子,以便更好地了解在ASP.NET项目中保存变量跨应用程序的所有选项。