asp.net и синглтон
От: FreddieM  
Дата: 06.09.10 15:27
Оценка:
В ASP.NET приложении используется следующий синглтон

public class MyClass
{
   private MyClass() {}
   public static MyClass Instance = new MyClass();
}


На кассини все ок, а вот когда работает под IIS 7.5 почему-то существует несколько экземпляров Instance.
С чем это может быть связано? IIS 7.5 создает несколько доменов?
Re: asp.net и синглтон
От: SE Украина  
Дата: 06.09.10 15:37
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>На кассини все ок, а вот когда работает под IIS 7.5 почему-то существует несколько экземпляров Instance.

FM>С чем это может быть связано? IIS 7.5 создает несколько доменов?

Постоянно существуют?

Начиная с 6-й версии IIS поддерживает ресайклинг, при котором в течении короткого времени могут существовать несколько копий Application. Хотя бы уже по этой причине желательно учитывать вероятное существование нескольких экземпляров любых объектов, которые казалось бы должны существовать в единственном экземпляре.

К сожалению, я не знаком с 7.5 в достаточной мере, чтобы идентифицировать проблему.
Re: asp.net и синглтон
От: TK Лес кывт.рф
Дата: 06.09.10 15:55
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>В ASP.NET приложении используется следующий синглтон


FM>На кассини все ок, а вот когда работает под IIS 7.5 почему-то существует несколько экземпляров Instance.

FM>С чем это может быть связано? IIS 7.5 создает несколько доменов?

При изменении сборки, домен может оставаться старый — просто, будет загружена новая dll вместе с новым синглтоном в ней.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: asp.net и синглтон
От: FreddieM  
Дата: 06.09.10 18:24
Оценка:
Здравствуйте, SE, Вы писали:

SE>Постоянно существуют?


Да
Re[2]: asp.net и синглтон
От: FreddieM  
Дата: 06.09.10 18:28
Оценка:
Здравствуйте, TK, Вы писали:

TK>При изменении сборки, домен может оставаться старый — просто, будет загружена новая dll вместе с новым синглтоном в ней.


Сборка не изменялась
Re: asp.net и синглтон
От: zhech  
Дата: 07.09.10 01:11
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>В ASP.NET приложении используется следующий синглтон


FM>
FM>public class MyClass
FM>{
FM>   private MyClass() {}
FM>   public static MyClass Instance = new MyClass();
FM>}
FM>


FM>На кассини все ок, а вот когда работает под IIS 7.5 почему-то существует несколько экземпляров Instance.

FM>С чем это может быть связано? IIS 7.5 создает несколько доменов?

А в AppPool количество отдельных процессов равняется единице?
Re[3]: asp.net и синглтон
От: FreddieM  
Дата: 07.09.10 06:46
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>Здравствуйте, TK, Вы писали:


TK>>При изменении сборки, домен может оставаться старый — просто, будет загружена новая dll вместе с новым синглтоном в ней.


FM>Сборка не изменялась


Хотя нет, я часто обновляю приложение — компилирую деплой-проект и заменаю бины на сервере, мб из-за этого? Но вроде приложение рестартится.
Re[2]: asp.net и синглтон
От: FreddieM  
Дата: 07.09.10 06:48
Оценка:
Здравствуйте, zhech, Вы писали:

Z>Здравствуйте, FreddieM, Вы писали:


FM>>В ASP.NET приложении используется следующий синглтон


FM>>
FM>>public class MyClass
FM>>{
FM>>   private MyClass() {}
FM>>   public static MyClass Instance = new MyClass();
FM>>}
FM>>


FM>>На кассини все ок, а вот когда работает под IIS 7.5 почему-то существует несколько экземпляров Instance.

FM>>С чем это может быть связано? IIS 7.5 создает несколько доменов?

Z>А в AppPool количество отдельных процессов равняется единице?


Есть Maximum Worker Processes... там единица.
Re[4]: asp.net и синглтон
От: TK Лес кывт.рф
Дата: 07.09.10 11:44
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>>Сборка не изменялась

FM>Хотя нет, я часто обновляю приложение — компилирую деплой-проект и заменаю бины на сервере, мб из-за этого? Но вроде приложение рестартится.

Например, посмотрите свойство конфигурации numRecompilesBeforeAppRestart. Можно сделать обновление web.config для принудительного рестарта приложения.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: asp.net и синглтон
От: Pro100Oleh Украина  
Дата: 10.09.10 12:14
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>Хотя нет, я часто обновляю приложение — компилирую деплой-проект и заменаю бины на сервере, мб из-за этого? Но вроде приложение рестартится.


Может вы не понимается правильно слово "рестартится"? При изменении какой-либо сборки иис не обязательно будет использовать новый аппдомен. Он может в старый загрузить новую версию сборки и создаст новые аспешные системные объекты, в результате чего будет HttpApplication.Start старт событие.
Pro
Re: asp.net и синглтон
От: zverjuga Беларусь  
Дата: 15.09.10 16:44
Оценка:
не нужно там делать свой синглтон. используйте уже готовый, Session или Application.
проклятый антисутенерский закон
Re[2]: asp.net и синглтон
От: hVostt Россия http://hvostt.ru
Дата: 26.09.10 15:29
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>не нужно там делать свой синглтон. используйте уже готовый, Session или Application.


Ага. Global.asax
специализация — удел насекомых... (с) Р. Хайнлайн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.