سؤال

لقد وجدت سؤال تجاوز سعة مكدس يصف كيفية النسخ الاحتياطي قاعدة تعريف IIS في C # هنا, ، لقد نجحت في الحصول على ذلك للعمل باستخدام الرمز المشار إليه هنا. وبعد ومع ذلك، أواجه صعوبة في استعادة النسخ الاحتياطية (أو بالفعل أي نسخ احتياطية تم إنشاؤها يدويا في IIS) باستخدام رمز C #.

هل يعرف أحد كيفية القيام بذلك، أو حتى لو كان يمكن القيام به؟ لم أتمكن من العثور على أي أمثلة على هذا على الويب، على عكس النسخ الاحتياطي نفسه.

لقد جربت التعليمات البرمجية التالية، ولكن تلقي الخطأ "تم إلقاء استثناء من قبل هدف الاحتجاج"

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