WebRole.cs 在与您的实际 Web 应用程序不同的进程中运行(在此处解释):
如果您希望您的 Web 应用程序使用静态类,您将需要使用 Global.asax。如果您不想重复代码,请考虑将静态属性存储在不同的类中,并在 WebRole.cs 和 Global.asax 中初始化它们,如下所示:
public static class MyStaticThingie
{
public static string XmlContentThingie { get; private set; }
public static Container IoCContainer { get; private set; }
public static void Init()
{
IoCContainer = ...;
XmlContentThingie = File.ReadAllText("Somefile.xml");
}
}
public class WebRole : RoleEntryPoint
{
public override bool OnStart()
{
MyStaticThingie.Init();
var something = MyStaticThingie.IoCContainer.GetSomething();
something.DoSomething();
return base.OnStart();
}
}
public class Global : System.Web.HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
MyStaticThingie.Init();
}
}