丢失在Global.asax中声明的静态变量的值,并在webrole的onstart事件中初始化

时间:2012-04-04 09:06:59

标签: c# asp.net azure

我在Gloabal.asax.cs中声明了一个静态字符串“drivePath”。在webrole的Onstart事件中,我正在为它分配一个值。我在我的网页上访问这个值,但它显示好像刚刚声明了变量。我获得的My代码值如下

的Global.asax.cs

public static string drivePath = string.Empty;

WebRole.cs

public override bool OnStart()
{
    MountAzureDrive();
    Global.drivePath = WebRole.drivePath;
    return base.OnStart();
}

我在“MountAzureDrive()”函数中为WebRole.drivePath赋值。

在网页

在某个功能的网页上,我以“Global.drivePath”的身份访问了drivePath,我的值为string.Empty。

我的问题是为什么不保留驱动路径的值?如果我想保留drivepath的值并得到它,我该怎么做?

请帮帮我

提前致谢。

2 个答案:

答案 0 :(得分:2)

WebRole中运行的代码与Web应用程序(Global.asax.cs)不同。你能做的是以下几点:

  1. WebRole:安装驱动器
  2. WebRole:将驱动器号存储为环境变量
  3. Global.asax.cs:从环境变量中读取驱动器号。
  4. ...
  5. enter image description here

    请按照此文章获取更多信息:http://www.codeproject.com/Articles/81413/Windows-Azure-Drives-Part-1-Configure-and-Mounting

    Sandrino

答案 1 :(得分:1)

OnStart(Role)是在您的网页之外的另一个进程(pages,Global.asax ..)。至少在使用Full IIS mode