2009-03-03 4 views
3

У меня есть сайт asp.net, который использует веб-приложение, и они оба находятся в одном пуле приложений (с одним рабочим процессом). На веб-сайте есть httpmodule, загруженный в файл web.config, и любопытно, что и основной веб-сайт, и приложение будут обслуживаться отдельными экземплярами httpmodule. Почему это? Поскольку они находятся в одном процессе, кажется, что они должны использовать один экземпляр.несколько экземпляров httpmodule

Кроме того, если я попытаюсь использовать статические переменные в приложении, они будут указывать на разные объекты, чем на веб-сайте asp.net. Тот же вопрос, что и раньше, поскольку они находятся в одном и том же процессе, не должны быть одним и тем же объектом или сделать .net невозможно какой-то границы внутри процесса?

ответ

3

IIS создает отдельный AppDomain для каждого применения. Эти AppDomains живут внутри одного и того же процесса операционной системы, но могут рассматриваться как отдельные процессы с точки зрения вашего управляемого кода. То есть они не разделяют нагруженные узлы, память и т.д.

http://www.odetocode.com/articles/305.aspx http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx http://msdn.microsoft.com/en-us/library/system.appdomain(VS.85).aspx

Смежные вопросы