2010-12-12 22 views
1

情況: 我有網站,調用WCF服務,我想了解它..關聯ASP.Net,WCF,App。域,實例,進程,應用程序。游泳池,W3WP.EXE

問: 考慮我有一個ASP.Net(IIS7託管)的網站我怎麼關聯AppDomain,W3Wp.exe進程,實例,App.Pool。 &如何將WCF服務與(AppDomain,Instance,App.Pool)與WAS服務器& Windows服務相關聯。當多個請求發送到asp.net網站時&網站調用WCF ..它將如何相互關聯?我'小糊塗...... 如果可能的話,你任何人都可以把一個圖來關聯吧..

非常感謝您的回覆

回答

3

到底是什麼它,你需要知道或不理解?

  • W3WP.EXE是過程IIS使用在
  • 程序池運行一個應用程序池是IIS的概念,在.net中不存在
    • 每個網站的應用程序在運行自己的AppDomain
    • AppPools在同一進程內部運行多個網站應用程序
  • AppDomain是一個.Net概念,它涉及代碼在應用程序內執行的方式,日記等等。
    • 來自MSDN:表示應用程序域,它是應用程序執行的獨立環境。
    • 您可以在同一個進程中擁有許多AppDomain,但AppDomain不能跨越不同的進程。
    • 代碼在一個AppDomain中可以創建新的應用程序域
    • 您可以跨AppDomain的邊界通過Remoting與在同一進程中的另一個應用程序域通信,在另一個進程中,甚至在遠程計算機上進行通信
      • 技術是一樣的。

在.net所有代碼具有對應用程序域的內部被執行。如果您在ASP.Net應用程序中託管WCF服務,則WCF服務將與ASP.Net應用程序在相同的AppDomain中運行(請參閱WCF和ASP.Net http://msdn.microsoft.com/en-us/library/aa702682.aspx)。在這種情況下,AppDomain將運行在IIS內部的AppPool中,但是這與.Net無關。

如果您在Windows服務中承載WCF服務,則WCF服務將在由Windows服務創建的AppDomain內運行,此處不涉及任何AppPools。

如果你的執行路徑

  1. 客戶端請求的ASP。託管在IIS
  2. 網頁網網頁請求在Windows服務

託管則會有1的應用程序池,1個W3wp.exe進程,1點Windows服務的過程,涉及2個AppDomain的WCF服務。

我不知道你的問題是否與WCF service Appdomain details有任何關係?

相關問題