質問

C# で IIS メタベースをバックアップする方法を説明した Stack Overflow の質問を見つけました。 ここ, 、そして私は参照されたコードを使用してそれを機能させることに成功しました ここ. 。ただし、C# コードを使用してこれらのバックアップ (または実際には IIS で手動で作成されたバックアップ) を復元するのが困難です。

誰かがこれを行う方法を知っていますか、またはそれができるかどうかさえ知っていますか?バックアップ自体とは異なり、Web 上でこの例を見つけることができませんでした。

次のコードを試してみましたが、エラーが発生しました 「呼び出しのターゲットによって例外がスローされました」

using (DirectoryEntry localhostIIS = new DirectoryEntry("IIS://LocalHost"))
{
   localhostIIS.Invoke("Restore", new object[] { string.Empty, 0, 0});
}

間違った名前やオブジェクト構造でメソッドを呼び出していることは確かですが、そのメソッドを見つけることができませんでした。 正しい どこでも呼び出す方法....

誰か私に正しい方向を教えてくれませんか?

役に立ちましたか?

解決

名前付きバックアップでこれを試してみたところ、いくつかの調整で動作するようになりました。

const uint MD_BACKUP_HIGHEST_VERSION = 0xfffffffe;
const uint MD_BACKUP_NEXT_VERSION = 0xffffffff;
const uint MD_BACKUP_SAVE_FIRST = 2;

using(DirectoryEntry de = new DirectoryEntry("IIS://Localhost"))
{
  // Backup using the next version number (MD_BACKUP_NEXT_VERSION)
  de.Invoke("Backup", new object[] {
      "test-backup",
      MD_BACKUP_NEXT_VERSION,
      MD_BACKUP_SAVE_FIRST
  });

  // Restore the highest version number (or specify the specific version)
  de.Invoke("Restore", new object[] {
    "test-backup",
    MD_BACKUP_HIGHEST_VERSION,
    0
  });
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top