Я искал на сайте похожий вопрос, но не нашел ничего близкого. Мои извинения сообществу, если я пропустил это.
Настройка:
- Windows 2008, 64-битный сервер
- Классические приложения ASP (некоторые из них) развернуты в одном пуле приложений под IIS
- Некоторые страницы в этих классических приложениях ASP создают и получают доступ к компонентам .Net, которые отображаются как компоненты COM.
Что мы видим (мы убедились в этом, зарегистрировав информацию о текущем процессе и домене приложения из компонентов .net, предоставляемых через COM):
Компоненты .Net, предоставляемые через COM-взаимодействие, загружаются в одном домене приложений в рамках рабочего процесса, созданного IIS для пула приложений, независимо от того, какое классическое приложение asp из пула приложений вызывает их. По сути, он ведет себя так, как будто IIS создает один домен приложений для компонентов взаимодействия COM, который используется всеми приложениями в этом пуле приложений. (под «общим» я подразумеваю, что все эти вызовы .Net направляются IIS в этот единственный домен приложения независимо от того, какое веб-приложение в пуле приложений инициирует вызов). Я ожидал, что IIS загрузит компоненты взаимодействия COM в домене приложения каждого веб-приложения.
[Если мы развернем классические приложения ASP в разных пулах приложений в IIS, то (очевидно) компоненты .Net будут загружены в домен приложений в рамках каждого рабочего процесса, запускаемого IIS для каждого пула приложений.]
Мне было интересно, видел ли кто-нибудь еще такое поведение и является ли оно известным поведением в компонентах IIS 7.x и .Net COM.