我已经在网站上搜索了类似的问题,但没有发现任何关系。如果我错过了,我向社区道歉。通过COM互操作访问的.net组件的应用程序域行为
设置:
- Windows 2008中,64位服务器
- 经典的ASP应用程序(其中一些)IIS 下部署在同一个应用程序池
- 在这些传统的ASP应用程序有些创建和访问作为COM组件公开的.Net组件。
我们看到什么(我们通过登录有关通过COM暴露了当前进程和应用程序域在.NET组件的信息验证了这一点):在被加载
通过COM互操作暴露了.NET组件由IIS为应用程序池创建的工作进程下的单个应用程序域,无论应用程序池下的哪个经典asp应用程序调用它们。基本上,它的行为就像IIS为COM互操作组件创建单个应用程序域,该应用程序池中的所有应用程序都共享该应用程序域。 (通过“共享”,我的意思是,无论应用程序池下的哪个Web应用程序正在启动呼叫,对这些.Net组件的调用都通过IIS路由到单个应用程序域。我期待IIS在每个Web应用程序的应用程序域中加载COM互操作组件。
[如果我们在部署不同的应用程序池经典ASP应用IIS下,然后(明显)的.NET组件被加载在由IIS为每个应用程序池纺丝每个工作进程中的应用程序的域。]
我想知道是否有其他人看到过这种行为,以及它是否具有IIS 7.x和.Net COM组件的已知行为。
谢谢安东尼,有道理。我现在可以看到,它将很难以不同的方式实现:.net将如何决定加载这些组件的appdomain,因为此时它唯一的上下文就是调用进程。再次感谢。 – 2012-03-06 18:35:09