PracticU

אירוח service על שרת IIS

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › אירוח service על שרת IIS
מילון מושגים:
IIS - שרת האינטרנט של מיקרוסופט (Internet Information Services), המריץ אתרים ויישומי אינטרנט על Windows.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
אתר אינטרנט - אוסף של דפים ומשאבים מקושרים המתארחים תחת כתובת אחת ומוגשים דרך דפדפן.
מערכת קבצים - השיטה שבה מערכת ההפעלה מארגנת, שומרת ומנהלת קבצים ותיקיות על התקן אחסון, למשל NTFS.
HTTP - פרוטוקול להעברת דפי אינטרנט ונתונים בין דפדפן לשרת. הגרסה המאובטחת שלו היא HTTPS.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.

אירוח service על שרת IIS
השיעור מראה איך מעלים את שירות ה-WCF לשרת IIS, כך שהוא זמין כל עוד המחשב פעיל. תחילה מפתחים עם שרת פיתוח מקומי, ורק אחר כך מתקינים ב-IIS אמיתי.
הכנת הפרויקט
1. הסרת ההוסט הקודם: מסירים את פרויקט ה-Windows Service מה-Solution ומוחקים אותו מהדיסק.
2. הוספת WCF Service: מוסיפים פרויקט Website מסוג WCF Service, ובוחרים File System, כלומר שרת פיתוח מקומי ולא HTTP. כך הפרויקט לא ייווצר ב-IIS אמיתי בזמן הפיתוח.
3. תיקיית הפרויקט: בוחרים תיקייה בתוך תיקיית ה-Solution, למשל Calc Service, ומוחקים את תיקיית Website שנוצרה בטעות.
4. שמות: מוחקים את IService ואת המחלקה Service שנוצרו אוטומטית, ומשנים את השם ל-CalculatorService בכל הקבצים: המחלקה, קובץ ה-svc והקוד שמאחוריו. שימוש ב-Rename מטפל גם ב-Web.config.
5. הפניה ל-DLL: מוסיפים הפניה ל-Calculator Library. מחלקת השירות ממשת את ICalculator, וכל פונקציה קוראת לאובייקט Calculator מה-DLL ומחזירה את התוצאה.
בדיקה בשרת הפיתוח
מגדירים את הקובץ CalculatorService.svc כ-Start Page ומריצים. הדפדפן נפתח עם דף בדיקה שמציג את כתובת ה-WSDL. שרת הפיתוח רץ בפורט זמני, שמופיע בסמל הקטן בשורת המשימות.
התקנה ב-IIS אמיתי
1. פרויקט Setup: מוסיפים Web Setup Project ל-Solution, ומוסיפים אליו Project Output של פרויקט ה-WCF (Primary output).
2. תיקיית אפליקציה: בתכונות Web Application Folder מגדירים שם לתיקייה הווירטואלית, CalculatorService, וקובץ ברירת מחדל: CalculatorService.svc.
3. בנייה: מבצעים Clean ו-Rebuild לפתרון, ואז Rebuild לפרויקט ה-Setup במצב Release. מתקבלים קובץ MSI וקובץ setup.exe להתקנה.
4. התקנה: מריצים את ה-setup, והאפליקציה מותקנת ב-IIS.
5. בדיקה: פותחים את הכתובת בדפדפן. כתובת ה-WSDL מופיעה בדף, ומעתיקים אותה.
6. עדכון הצרכן: מוחקים את הפרוקסי והחיבור הישנים, מחליפים את הכתובת ב-App.config לכתובת האמיתית ב-IIS, ומוסיפים Service Reference מחדש.
השירות רץ עכשיו על IIS אמיתי, וחשוף כל עוד השרת פועל.
השיעור הבא בקורס: Proxy - Add Service Reference

פרקי ההרצאה: אירוח service על שרת IIS

  1. 00:00

    מעבר משירות Windows ל-IIS

  2. 01:16

    פרויקט WCF Service Website חדש

  3. 02:52

    תיקיית הפרויקט וקובץ service.svc

  4. 04:02

    ניקוי קוד הדמו ושינוי שמות אחידים

  5. 06:11

    חיבור ל-DLL ומימוש הפונקציות ב-IIS

תמלול ההרצאה: אירוח service על שרת IIS

הטקסט המלא של הדקות הראשונות בהרצאה «אירוח service על שרת IIS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:20

    הדבר הבא שאנחנו הולכים לראות בעולם ההוסטינג זה איך אנחנו הולכים להעלות את ה-WCF סרוויס שלנו ל-IIS, כך שזה יהיה בעצם IIS הוסט.

  2. 00:31

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

  3. 00:52

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

  4. 01:08

    קלקולטור win service delete. וכעת יש לנו סך הכל שני פרויקטים, יש לנו את ה-DLL של ה-WCF סרוויס, של הקלקולטור, וצרכן שאנחנו עוד מעט נלך ונבנה אותו.

  5. 01:25

    היית אני רוצה להוסיף לתיקיית הסולושן פרויקט של איי איי אס הוסט. אז אני הולך לקובץ הסולושן Add New Website ובוחר ב-WCF Service.

  6. 01:40

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

  7. 02:00

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

  8. 02:21

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

  9. 02:38

    נלך ל-My Documents ונאתר כאן בדיוק איפה שמרנו את הפרויקט שלנו. אז נלך לתיקייה של WCF, הוסטינג, IS-HOST והנה תיקיית הסלושן.

  10. 02:52

    הדבר הבא שאני רוצה לעשות זה להגדיר בתוך תיקיית הסלושן שהיא בעצם התיקייה של הפרויקט שלנו. אוקיי, נלחץ על Add Folder, אחר כך נמחק את התיקייה Website שנוצרה לנו, וניתן כאן שם של התיקייה של ה-IS Host שלנו.

  11. 03:13

    אז בואו נבחר בשם Calc Service, מבצע Open, ו-OK. כעת נוצר לי הפרויקט בסלושן, ונראה בדיוק מה אנחנו צריכים לשנות. אז אני רואה שיש לי פה קובץ שנקרא service.svc, svc זה קיצור של סרוויס.

  12. 03:40

    וזה קובץ שאחר כך הלקוח צריך להתחבר אליו לקובץ service.svc בכדי להוריד את מסמך ה-wsdl שדיברנו עליו לפני זה. עכשיו אני רואה דבר נוסף, יש לי פה תיקייה שנקראת app-code ויש לי כאן גם דמו לגבי ה-contract שלנו וגם דמו לגבי המחלקה.

  13. 04:04

    זאת המחלקה שנמצאת כאן, היא יקראת Service והקונט רק נקרא iService. עכשיו, אנחנו לא רוצים להשתמש כרגע בשתי המחלקות, יותר נכון באינטרפייס הזה ובמחלקה הזאת לצורך השירות WCF שלנו, מפני שנכון לבנות את השירות שלנו על ידי DLL נפרד, לא נכון לשלב אותו בתוך פרויקטים אחרים.

  14. 04:26

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

  15. 04:39

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

  16. 05:01

    נגדיר את השם שלה כ-CalculatorService, ועכשיו חשוב מאוד ללחוץ Control נקודה ו-Rename, מפני שכאשר אנחנו משנים את השם, אנחנו חייבים שהמערכת תשנה אותו גם בכל מקום שהוא כתוב בתוך ה-Web Config.

  17. 05:19

    וכאשר עשינו Control נקודה ו-Rename, הוא עשה את זה אוטומטית. הדבר הבא שאנחנו עושים, אנחנו הולכים לקובץ Service.svc וגם אותו משנים לאותו השם.

  18. 05:34

    לא נכון שיהיה לי סרוויס שנקרא סתם סרוויס, לא אומר שום דבר לאף אחד. אז אנחנו שומרים פה על אחידות, והשם של השירות שנחשף שלנו נקרא CalculatorService, אנחנו רואים את זה גם כאן, גם כאן וגם בשם של קובץ ה-CF.

  19. 05:50

    הדבר הבא שאנחנו עושים, אנחנו נכנסים לתוך ה-SVC ומוודאים שמה שכתוב כאן מפנה באמת לתיקיות שלנו. אנחנו רואים סרוויס, נשנה אותו ל-CalculatorService ונשנה את השם של ה-C-Sharp גם ל-CalculatorService.

  20. 06:11

    עכשיו אנחנו צריכים להשתמש בשירות שלנו. אז בואו נלך ל-CalcService ונצרף אותו על ידי AddReference. נצרף את ה-WCF סרוויס שלנו והוא נמצא בקלקולטור ליברירי.

  21. 06:26

    נבצע אוקיי ונירש את הממשק האמיתי שלנו שנקרא iCalculator. אוקיי, עכשיו נממש את הפונקציות בתוך ה-IIS סרוויס אבל אנחנו לא רוצים לבנות אותן בעצמנו כי הן כבר כתובות בתוך ה-DLL ולכן מה שנכון לעשות זה פשוט להגדיר אינסטאנס מהסרוויף של ה-WCF.

  22. 06:52

    נגדיר פה private Calculator Calc וכל מה שאנחנו צריכים לעשות זה בפונקציות פשוט לקרוא לשירות wcf האמיתי. return talk בעצם רציתי לקרוא לזה talk.ad כי אני בפונקציית ad נשלח לה את num1 נשלח לה את num2 ונבצע את אותו הדבר בכל הפונקציות האחרות.

  23. 07:25

    יש לנו פה את subtract יש לנו כאן את multiply יש לנו כאן את division ויש לנו כאן את average. וכעת סיימנו בעצם לבנות את ה-Service שלנו, יותר נכון את ה-IIS Service.

לקורס המלא: קורס WCF אונליין בדוט-נט

ההרצאה הקודמת: יצירת Service ב-Windows

ההרצאה הבאה: Proxy - Add Service Reference

הרצאות קשורות מקורסים אחרים

  • אירוח 3 אתרים על שרת IIS אחד
  • צד שרת
  • מה זה שרת ?
  • Create Service

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C