2

我正在尝试使用以下代码从 IIS 检索网站:

var serverManager = new ServerManager();

var site = serverManager.Sites.FirstOrDefault(s => s.Name == Config.WebSiteName);

ServerManager类是在 中定义的Microsoft.Web.Administration,我使用带有复制本地的引用,并且 dll 与应用程序一起部署。

如果我的应用程序在 Win7 64 位上运行,它可以正常工作,但是当我尝试在 Windows XP 32 上运行它时,它会引发异常:

由于以下错误,检索具有 CLSID {2B72133B-3F5B-4602-8952-803546CE3344} 的组件的 COM 类工厂失败:80040154

我将该应用程序部署为独立的 winforms .net 3.5 应用程序(专为任何 CPU 构建)。

有任何想法吗?

提前致谢。

4

1 回答 1

6

该错误是REGDB_E_CLASSNOTREG,即它试图调用的代码在您的 XP 机器上不存在。从文档

提供对 IIS 7 配置系统的读写访问。

Win XP Pro 只有 IIS 6 而不是 7。您必须使用其他一些机制,例如iisweb.vbs、 adplus 或它们在幕后使用的 COM 对象。

于 2012-04-26T12:45:05.110 回答