我找到了描述如何在 C# 中备份 IIS 元数据库的 Stack Overflow 问题 here ,我已经成功地使用引用的代码让它工作 here .但是,我很难使用 C# 代码恢复这些备份(或者实际上是在 IIS 中手动创建的任何备份)。
有谁知道如何做到这一点,或者即使可以做到?与备份本身不同,我无法在网络上找到任何这方面的示例。
我尝试了以下代码,但收到错误消息“调用的目标已抛出异常”
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
});
}
关于c# - 如何使用 C# 恢复 IIS 元数据库备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222646/