هو هناك .صافي المكتبة أو API للتفاعل مع/تحرير قاعدة تعريف IIS?
سؤال
...أو أنا عالقة المتداول بلدي "XML تقطيع" وظائف.أود أن إنشاء صغير tasktray التطبيق لذلك يمكنك بسرعة إعادة نقطة Virual الدليل إلى واحدة من العديد من المجلدات على القرص الصلب.
قليلا من الخلفية:
لدي 3 مختلفة إس فروع لدينا رمز قاعدة على ديف آلة.
Current Production Branch ( C:\Projects\....\branches\Prod\ )
Next Release Canidate Branch ( C:\Projects\....\branches\RCX\ )
Trunk ( C:\Projects\....\trunk\ )
لدينا التطبيق يتكامل مع 3rd الطرف CMS التي ركبت في
http://localhost/cms/
من أجل العمل على التطبيق لدينا أن يعيش في نفس الدليل الجذر.لذلك:
http://localhost/app/
اعتمادا على فرع أعمل على إعادة مشيرا /app/
الدليل إلى واحدة من 3 مسارات المذكورة أعلاه عن طريق الذهاب إلى "إدارة IIS".ظننت أنه سيكون مفيدا سريعة التطبيق أن تفعل ذلك بالنسبة لي.
المحلول
حسنا هذه ليست علبة التطبيق ولكن يمكنك تشغيله من سطر الأوامر.مجرد تغيير المسارات الفعلية حسب الضرورة:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
namespace Swapper
{
class Program
{
static void Main(string[] args)
{
using (DirectoryEntry appRoot =
new DirectoryEntry("IIS://Localhost/W3SVC/1/root/app"))
{
switch (args[0].ToLower())
{
case "prod":
appRoot.Properties["Path"].Value = @"e:\app\prod";
appRoot.CommitChanges();
break;
case "rcx":
appRoot.Properties["Path"].Value = @"e:\app\rcx";
appRoot.CommitChanges();
break;
case "trunk":
appRoot.Properties["Path"].Value = @"e:\app\trunk";
appRoot.CommitChanges();
break;
default:
Console.WriteLine("Don't know");
break;
}
}
}
}
}
ثم تشغيل كما في:
C:\>swapper prod
C:\>swapper rcx
الخ
نصائح أخرى
أنا لم تستخدم هذه الذات ، لذلك أنا لست متأكدا 100 ٪ فإنه سيتم حل المشكلة الخاصة بك.ولكن إلقاء نظرة على النظام.DirectoryServices في .صافي.فإنه يمكن الوصول إلى IIS.
حسنا, بالنسبة IIS 7 هناك .صافي المجمع لتمكين إدارة IIS عن طريق .صافي.راجع هذا الرابط لمزيد من التفاصيل ،
http://learn.iis.net/page.aspx/165/how-to-use-microsoftwebadministration/
عن النسخة السابقة من IIS (5 أو 6) ، ADSI WMI واجهات المقدمة ،