C# 无法访问IIS服务器管理器配置
我想在WPF TreeView控件中显示IIS配置。 我的操作系统是Windows 8.1,我正在用VS2013编写C#。 因此,我添加了对Microsoft.Web.Administration.dll的引用,并编写了以下代码:C# 无法访问IIS服务器管理器配置,c#,wpf,iis,C#,Wpf,Iis,我想在WPF TreeView控件中显示IIS配置。 我的操作系统是Windows 8.1,我正在用VS2013编写C#。 因此,我添加了对Microsoft.Web.Administration.dll的引用,并编写了以下代码: using (ServerManager serverManager = new ServerManager()) { foreach (var site in serverManager.Sites) {
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。
HResult=-2147221164
Message=mit CLSID{2B72133B-3F5B-4602-8952-803546CE3344}的Klassenfactory für de Klassen of Komponente mit CLSID{2B72133B-3F5B-4602-8952-803546CE3344}不符合要求的材料和材料:80040154 Klasse nicht registriert(ausname von HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。
Source=mscorlib
错误代码=-2147221164
堆栈跟踪:
bei System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
bei System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
bei System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType服务器类型,对象[]道具,布尔bNewObj)
bei System.RuntimeTypeHandle.CreateInstance(RuntimeType类型、Boolean publicOnly、Boolean noCheck、Boolean&canBeCached、RuntimeMethodHandleInternal&ctor、Boolean&bNeedSecurityCheck)
bei System.RuntimeType.CreateInstanceSlow(布尔publicOnly、布尔skipCheckThis、布尔fillCache、StackScrawlMark和stackMark)
bei System.RuntimeType.CreateInstanceDefaultCtor(布尔publicOnly、布尔skipCheckThis、布尔fillCache、StackScrawlMark和stackMark)
bei System.Activator.CreateInstanceT
bei Microsoft.Web.Administration.ConfigurationManager.CreateAdminManager[TClass,TInterface](WebConfigurationMap webConfigMap,布尔值isAdminConfig)
bei Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfiguration映射webConfigMap,字符串configPathToEdit,布尔值isAdminConfig)
bei Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap configMap,字符串configPathToEdit,布尔值isAdminConfig)
bei Microsoft.Web.Administration.ConfigurationManager.GetConfiguration(字符串rawConfigurationPath、字符串cacheKey、布尔值isAdminConfig)
bei Microsoft.Web.Administration.ConfigurationManager.GetApplicationHostConfiguration()
bei Microsoft.Web.Administration.ServerManager.GetApplicationHostConfiguration()
bei Microsoft.Web.Administration.ServerManager.get_SitesSection()
bei Microsoft.Web.Administration.ServerManager.get_Sites()
有人知道怎么做吗
提前谢谢!
Patrick确保您的计算机上安装了IIS管理脚本和工具(在“添加/删除程序->打开或关闭Windows功能”下)