【问题标题】:Cannot access IIS-ServerManager configuration无法访问 IIS-ServerManager 配置
【发布时间】:2014-09-30 09:47:13
【问题描述】:

我想在 WPF-TreeView 控件中显示 IIS 配置。 我的操作系统是 Windows 8.1,我正在用 VS2013 编写 C#。 所以我添加了对 Microsoft.Web.Administration.dll 的引用并编写了以下代码:

    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 对象,但是当我查看该对象时,我看到了每个示例: ApplicationDefaults = "serverManager.ApplicationDefaults" 引发了“System.Runtime.InteropServices.COMException”类型的异常。

当编译器想要使用 ServerManager 的站点启动 foreach 循环时......

System.Runtime.InteropServices.COMException wurde nicht behandelt。 H结果=-2147221164 Message=Die COM-Klassenfactory für die Komponente mit CLSID {2B72133B-3F5B-4602-8952-803546CE3344} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80040154 Klasse nicht registriert (Ausnahme von HRESULT: 0x8) 源=mscorlib 错误代码=-2147221164 堆栈跟踪: 北 System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) 北 System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType) bei System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj) bei System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,布尔 publicOnly,布尔 noCheck,布尔& canBeCached,RuntimeMethodHandleInternal& ctor,布尔& bNeedSecurityCheck) bei System.RuntimeType.CreateInstanceSlow(布尔publicOnly,布尔skipCheckThis,布尔fillCache,StackCrawlMark和stackMark) bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 北 System.Activator.CreateInstanceT bei Microsoft.Web.Administration.ConfigurationManager.CreateAdminManager[TClass,TInterface](WebConfigurationMap webConfigMap, Boolean isAdminConfig) bei Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap webConfigMap, String configPathToEdit, Boolean isAdminConfig) bei Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap configMap, String configPathToEdit, Boolean isAdminConfig) bei Microsoft.Web.Administration.ConfigurationManager.GetConfiguration(String rawConfigurationPath, String cacheKey, Boolean isAdminConfig) 在 Microsoft.Web.Administration.ConfigurationManager.GetApplicationHostConfiguration() 在 Microsoft.Web.Administration.ServerManager.GetApplicationHostConfiguration() 北 Microsoft.Web.Administration.ServerManager.get_SitesSection() 北 Microsoft.Web.Administration.ServerManager.get_Sites()

有人知道该怎么做吗?

提前致谢! 帕特里克

【问题讨论】:

    标签: c# wpf iis


    【解决方案1】:

    确保您的计算机上安装了 IIS 管理脚本和工具(在添加/删除程序 -> 打开或关闭 Windows 功能下)

    【讨论】:

      猜你喜欢
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 2016-02-03
      • 1970-01-01
      • 2011-08-10
      相关资源
      最近更新 更多