Я занимаюсь расследованием преобразования нашего веб-приложения в веб-ферму. Итак, я начал с веб-сада, преобразовав «Максимальный рабочий процесс = 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;
}
// Затем я вызываю этот метод Ajax с использованием Javascript и устанавливаю возвращаемое значение в текстовое поле.
Этот тест не работает должным образом. Ниже приведены мои предположения и неверный результат теста.
Я думал, что когда мы устанавливаем виртуальный каталог как веб-сад, то каждый запрос к виртуальному каталогу обрабатывается другим процессом в веб-саду, поэтому мои следующие несколько запросов к серверу должны возвращать ноль, поскольку я инициализировал статические объекты для одного рабочего процесса. Но даже если я нажму кнопку ajax 20 раз подряд (что означает 20 запросов), даже тогда статические объекты возвращают мне значение.
Правильно ли я считаю, что при перезапуске IIS должны быть уничтожены все статические объекты.
Статические объекты не используются совместно в веб-садах / веб-фермах.
Меня удивляет поведение IIS, статических объектов и веб-сада.
Я предполагаю, что неправильно или мой метод тестирования неверен.
Спасибо.