我正在调查将我们的网络应用程序转换为网络场。所以我从网络花园开始,通过转换“最大工作进程 = 3”。以下是我的问题的简化版本。
以下是我的静态对象类。
public static class MyStaticObject
{
public static string MyProperty {get;set;}
}
然后在页面加载我初始化静态对象如下 -
MyStaticObject.MyProperty = "My Static Property";
然后使用 asp.net ajax [WebMethod] 在我的网页上创建 ajax 方法
[WebMethod()]
public static string getStaticProperty()
{
return MyStaticObject.MyProperty;
}
// 然后我使用 Javascript 调用此 Ajax 方法并将返回设置为文本框。
此测试未按预期工作。以下是我的假设和测试的错误结果。
我想当我们将虚拟目录设置为网络花园时,对虚拟目录的每个请求都由网络花园中的不同进程处理,所以我接下来对服务器的几个请求应该返回 null,因为我已经为一个工作初始化了静态对象过程。但是,即使我连续单击 ajax 按钮 20 次(意味着 20 个请求),静态对象也会返回我的值。
我是否正确假设重新启动 IIS 应该杀死所有静态对象。
静态对象不在网络花园/网络农场中共享。
我对 IIS、静态对象和网络花园的行为感到惊讶。
是我假设错误还是我的测试方式错误。
谢谢。