現在、現在のマシンの IIS7 に Web サイトを追加する C# で記述されたアプリケーションがあり、完全に動作します。コードは次のとおりです。
var iisManager = new ServerManager();
var sites = iisManager.Sites;
var site = sites.Add("WebsiteName", "C:\Website", 80);
var application = site.Applications[0];
application.ApplicationPoolName = appPool;
iisManager.CommitChanges();
同じネットワーク上にあるリモート マシン上の IIS に Web サイトを追加するこのコードのバージョンを作成する必要があります。そのコードは次のとおりです。
var iisManager= ServerManager.OpenRemote("machineName"); //I've also tried machines IP
var sites = iisManager.Sites["Default Web Site"];
var site = Sites.Applications.Add("WebsiteName", "C:\Website", 80);
site.ApplicationPoolName = appPool;
iisManager.CommitChanges();
machineName がコードを実行するマシンである場合、Web サイトが IIS に追加されます。ただし、machineName がリモート マシンの場合、次の例外が発生します。
CLSID {2B72138B-3F5E-4502-8052-803546CE3364} を持つリモート コンポーネントの COM クラス ファクトリを "リモート マシン名" から取得できませんでした。次のエラーが原因でした: 80070005 "リモート マシン"
実行時に例外が発生する
var iisManager= ServerManager.OpenRemote("machineName");
上記のコードを実行する前に、偽装を使用して管理者になりすます。マシンにリモート接続でき、C# コードを使用してマシン上にファイルを作成することもできます。
リモートマシンのアクセス許可に問題があるか、それが VM であることが原因である可能性があると思いますが、よくわかりません。
コード 80070005 はかなり一般的なもので、アクセスが制限されていることを表していますが、管理者になりすましていると考える理由がわかりません。
Windows 7 sp1 x64 マシンでコードを実行しており、リモート VM は Windows Server 2008 sp2 x64 を実行しています。
この問題を解決する方法や、リモート マシン上の IIS に Web サイトを追加する別の方法について何かアイデアをお持ちの方がいらっしゃいましたら、ぜひお聞かせください。
ありがとう