ניהול שרת ה IIS 7 דרך קוד

27 בAugust 2007

תגיות:
2 תגובות

 מאירועי הפרקים הקודמים:
בפרק הקודם הסברתי שIIS 7, בניגוד לגרסאות הקודמו, בנוי בצורה מודולרית לחלוטין. היות שהוא נבנה מחדש, כמודולים סביב ה Core, אנחנו, המתכנתים המסכנים יכולים לעבוד איתו בצורה יותר נוחה.
אז לפני שניגש ונתחיל לכתוב handlers משלנו, בואו נתחיל מקטן, ונראה איך דרך קוד אנחנו יכולים לשלוט ממש בנוחות על הדברים הקיימים.

נעים להכיר, Microsoft.Web.Administration

תכירו את הניימספייס החדש, Microsoft.Web.Administration. זה זמן מעולה להוסיף אותו כרפרנס לפרוייקט שלכם. המיקון שלו הוא ב %windir%/system32/inetsrv ושמו Microsoft.Web.Administration.dll.

לאחר מכן, בואו נוסיף את שורת ה using:

image

Server Manager

האובייקט מולו נעבוד הכי הרבה עכשיו הוא ServerManager, שלמעשה, דרכו אנחנו יכולים לשלוט על כל מאפייני השרת.

כשאנחנו יוצרים מופע שלו, אנחנו מקבלים העתק של מצב השרת ברגע יצירת המופע. כל הפעולות שאנחנו מבצעים מול האובייקט הזה, לא נחשבות ולא מופעלות עד שאנחנו מאשרים את השינויים, עבודה א-סינכרונית.

בתור התחלה, הנה דוגמאת קוד קטנה:

image

 אנחנו יוצרים מופע של ServerManager ועוברים בלולאה על כל האתרים ומדפיסים את המידע עליהם. לא ממש מסובך, אפילו די מובן מאליו. הנה דוגמא של תוצאת הריצה:

image

 

 הייתם מאמינים שעד עכשיו לא היה ניתן לכתוב את הקוד הכ”כ פשוט הזה בצורה נוחה?

כמובן, שאף אחד לא מגביל אותנו רק לקריאת מידע. אנחנו יכולים להוסיף גם. הנה דוגמא לקוד שמקבל מהמשתמש מידע, ועל סמך זה יוצר Website חדש:

image

 את המצב לפני הרצת האפליקציה, אתם יכולים לראות בחלון ה command line למעלה – זוג אתרים בלבד.

עכשיו, כשנריץ את האפליקציה, יוגדרו כל הנתונים, וכשיורץ CommitChanges הם יסונכרנו מול הIIS עצמו. אם נעשה שינוי אחריו, ולא נעשה לו commit, השינוי לא יתרחש.

הפעלתי את האפליקציה, הזנתי את הנתונים, ובאמת התווסף אתר לIIS:

image

 בדיוק לפי הנתונים שהגדרתי. מובן, שבצורה דומה ניתן להוסיף Application Pools, לשנות הגדרות יותר מורכבות וכו’.

למעשה, Server Manger הוא סוג של עידן חדש, שבו ניתן לנהל בקלות את הIIS וממחיש את השינוי המהותי שחל.

בהצלחה.

בפרק הבא:
בפרק הבא נכתוב handler חדש ונגדיר אותו בIIS.

הוסף תגובה
facebook linkedin twitter email

Leave a Reply

Your email address will not be published. Required fields are marked *

2 תגובות

  1. Justin-Josef Angel27 בAugust 2007 ב 10:08

    שחר, מאמר נהדר.

    (ואת ה-CSS שלך עדיף לשים ב-CSS של האתר ולא בכל עמוד ועמוד, בכלל להעתקת קוד אני ממליץ על Copy As HTML שנתמך לכל גירסאות VS).

    אתה יכול להוסיף את פריט המידע הבא – מרבית הפיצ’רים הניהוליים שמוצעים כחלק מגירסאות IIS 5.1 ו-IIS 6.0 הן בעייתיות מאוד מבחינת תחקור ופעולות מתוך דוט נט. יכולות השאילתות דרך ה-LDAP תמיד היה גרועות (גם אם הופכים אותן ל-Strongly Typed) כי הן חלקיות ועובדות רק בחלק מהמקרים ואין מיפוי של מקרים, וכל פעולה (הוספת תת-אתר, הוספת דומיין, שינוי פורטים, הוספת Extensions ומה לא) נתמכות דרך פורמט ה-LDAP הקודם רק ב-Windows Server 2003 עם SP1. (כלומר, הקוד ה-LDAPי שלך יתנהג שונה על מכונת פיתוח XP\VISTA לעומת על שרת פריסה 2003SP1.

    ה-Wrapper הזו מצילה חיים.

    Reply
  2. Shahar27 בAugust 2007 ב 10:15

    תודה ג’סטין.
    אני אוריד והתקין את Copy as HTML כך שבפעמים הבאות יופיע הקוד כקוד ולא כתמונה.

    הייתה אפשרות אחרת בנוסף לLDAP – שהיא עבודה עם WMI מתוך דוט.נט. זה יוצר קוד זוועתי, בלתי קריא, ולא ניתן לתחזוקה. אבל, זה עבד (עד שהיית צריך לשנות משהו או לעשות משהו קצת לא שגרתי…).

    Reply