-1

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

4

1 回答 1

4

它总是去,你在这样的变量中持有什么?

我将主要设置(只读)变量保存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. 使用 Session State 保存变量这是最常用的,但在云平台上很糟糕,因为请求可以更改服务器,并且接收到用户继续请求的新服务器没有会话

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

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

还有关于女巫的应用程序设置global.asax在经典 ASP 时代非常常用,从那时起我就再也没有使用过它们,因为它们与会话变量具有相同的流程,女巫被放置在内存中......任何应用程序池重置,任何新的构建,所有会话都丢失了。

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

于 2012-06-05T08:49:36.860 回答