我已經在網站上搜索了類似的問題,但沒有發現任何關係。如果我錯過了,我向社區道歉。通過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