2

次のコードを使用して、IIS から Web サイトを取得しようとしています。

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 7 ではなく IIS 6 しかありません。iisweb.vbs、 adplus 、またはバックグラウンドで使用する COM オブジェクトなど、他のメカニズムを使用する必要があります。

于 2012-04-26T12:45:05.110 に答える