我正在尝试使用以下代码从IIS检索网站:
var serverManager = new ServerManager();
var site = serverManager.Sites.FirstOrDefault(s => s.Name == Config.WebSiteName);
ServerManager
类在Microsoft.Web.Administration
中定义,我使用带有本地副本的引用,并且dll随应用程序一起部署。
如果我的应用程序在Win7 64bit上运行,它可以正常工作,但是当我尝试在Windows XP 32上运行它时会引发异常:
检索具有CLSID {2B72133B-3F5B-4602-8952-803546CE3344}的组件的COM类工厂因以下错误而失败:80040154
我正在将应用程序部署为独立的winforms .net 3.5应用程序(专为任何CPU而构建)。
有什么想法吗?
提前致谢。
答案 0 :(得分:4)
该错误是REGDB_E_CLASSNOTREG
,即它试图调用的代码在您的XP机器上不存在。来自the docs
提供对IIS 7配置系统的读写访问权限。
Win XP Pro只有IIS 6而不是7.你必须使用其他一些机制,例如iisweb.vbs,adplus或他们在幕后使用的COM对象。