2014-09-30 27 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