несколько экземпляров httpmodule - PullRequest
3 голосов
/ 03 марта 2009

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

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

1 Ответ

3 голосов
/ 03 марта 2009

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

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

...