2014-09-30 29 views
0

我想在WPF-TreeView控件中顯示IIS配置。 我的操作系統是Windows 8.1,我正在用VS2013編程C#。 所以我加入到Microsoft.Web.Administration.dll的引用,並寫了下列代碼:無法訪問IIS-ServerManager配置

using (ServerManager serverManager = new ServerManager()) 
    { 
     foreach (var site in serverManager.Sites) 
     { 
      var siteNode = new TreeViewItem() { Header = string.Format("Site: {0}", site.Name) }; 
      _irv.trvIisInformation.Items.Add(siteNode); 
      foreach (var application in site.Applications) 
      { 
       var appPoolNode = new TreeViewItem() { Header = string.Format("AppPool: {0}, Type: {1}", application.ApplicationPoolName, HoleApplikationstyp(serverManager, application)) }; 
       siteNode.Items.Add(appPoolNode); 

       foreach (var virtDir in application.VirtualDirectories) 
       { 
        appPoolNode.Items.Add(new TreeViewItem() { Header = string.Format("Dir: {0} [{1}]", virtDir.Path, virtDir.PhysicalPath) }); 
       } 
      } 
     } 
    } 

的ServerManager的對象被創建,但是,當我看一看到目標i每例如參見: ApplicationDefaults =「serverManager.ApplicationDefaults」引發了「System.Runtime.InteropServices.COMException」類型的異常。

而當編譯器要啓動的foreach循環與ServerManager的的站點...

System.Runtime.InteropServices.COMException wurde nicht behandelt。 的HResult = -2147221164 消息=模具COM-Klassenfactory獻給死Komponente MIT CLSID {2B72133B-3F5B-4602-8952-803546CE3344} konnte aufgrund DES folgenden Fehlers nicht abgerufen werden:80040154的Klasse nicht registriert(Ausnahme馮HRESULT:0x80040154的(REGDB_E_CLASSNOTREG) )。 源= mscorlib程序 錯誤碼= -2147221164 堆棧跟蹤: 貝System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType的objectType) 貝System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType服務器類型) 貝System.Runtime。 Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType服務器類型,對象[]道具,布爾bNewObj) 貝System.RuntimeTypeHandle.CreateInstance(RuntimeType類型,布爾publicOnly,布爾NOCHECK,布爾& canBeCached,RuntimeMethodHandleInternal &構造函數,布爾& bNeedSecurityCheck) 貝System.RuntimeType.CreateInstanceSlow(布爾publicOnly,布爾skipCheckT他的,布爾fillCache,StackCrawlMark & stackMark) 貝System.RuntimeType.CreateInstanceDefaultCtor(布爾publicOnly,布爾skipCheckThis,布爾fillCache,StackCrawlMark & stackMark) 貝System.Activator.CreateInstanceT 貝Microsoft.Web.Administration.ConfigurationManager.CreateAdminManager [TClass ,TInterface](WebConfigurationMap webConfigMap,布爾isAdminConfig) 貝Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap webConfigMap,字符串configPathToEdit,布爾isAdminConfig) 貝Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap configMap,字符串configPathToEdit,布爾isAdminConfig) bei Microsoft.Web.Administration.ConfigurationM anager.GetConfiguration(字符串rawConfigurationPath,字符串cacheKey,布爾isAdminConfig) 貝Microsoft.Web.Administration.ConfigurationManager.GetApplicationHostConfiguration() 貝Microsoft.Web.Administration.ServerManager.GetApplicationHostConfiguration() 貝Microsoft.Web.Administration.ServerManager.get_SitesSection () bei Microsoft.Web.Administration.ServerManager.get_Sites()

有沒有人知道該怎麼辦?

提前致謝! 帕特里克

回答

2

確保IIS管理腳本和工具安裝在你的機器上(在添加/刪除程序 - >打開Windows功能打開或關閉)

+0

THX!爲我工作 – ArthNRick 2017-05-19 21:28:08