我想在WPF-TreeView控件中显示IIS配置。我的操作系统是Windows8.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-object,但是当我查看每个示例中看到的对象时:"System.Runtime.InteropServices.COMException". = "serverManager.ApplicationDefaults“引发了ServerManager类型的异常
当编译器想要使用ServerManager的站点启动foreach循环时...
System.Runtime.InteropServices.COMException wurde并不在后面。HResult=-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: 0x80040154 (REGDB_E_CLASSNOTREG))。布尔ErrorCode=-2147221164类型: bei System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType serverType) bei System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType objectType) bei System.RuntimeTypeHandle.CreateInstance(RuntimeType serverType,Object[] bNewObj,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck) bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Object[]bNewObj,Boolean publicOnly,Boolean noCheck,Boolean fillCache,StackCrawlMark& stackMark) bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark& stackMark) bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean bei Microsoft.Web.Administration.ConfigurationManager.CreateAdminManagerTClass,TInterface bei Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap System.Activator.CreateInstanceT,webConfigMap configPathToEdit,Boolean isAdminConfig) bei configMap,String configPathToEdit,Boolean isAdminConfig) bei rawConfigurationPath,String cacheKey,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() ( Boolean isAdminConfig)
有人知道该怎么做吗?
提前感谢!帕特里克
发布于 2014-10-11 05:15:22
确保计算机上安装了IIS管理脚本和工具(在“添加/删除程序”“->”“打开或关闭Windows功能”下)
https://stackoverflow.com/questions/26117710
复制相似问题