PracticU

Binding Configuration

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › Binding Configuration
מילון מושגים:
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
עוגייה - קובץ קטן שאתר שומר בדפדפן כדי לזכור מידע על המשתמש בין בקשות, למשל מצב התחברות או העדפות.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
CLR - סביבת הריצה של .NET שמריצה את הקוד, מנהלת את הזיכרון ומטפלת בשגיאות (Common Language Runtime).
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
UTF-8 - שיטת קידוד נפוצה של Unicode, שמייצגת כל תו במספר משתנה של בתים ותואמת ל-ASCII.

Binding Configuration
השיעור עוסק בקונפיגורציה של ה-Binding, כלומר בהגדרות נוספות שמשפיעות על תקשורת הנתונים שנבחרה, ובאופן שבו הן מופיעות ב-App.config.
הגדרות שנסקרו
1. AllowCookies: קובע אם השרת מקבל קוקיז ושולח אותם בחזרה ללקוחות.
2. BypassProxyOnLocal: כשהלקוח נמצא על אותו מחשב כמו השרת, קובע אם הוא עוקף את הפרוקסי ופונה ישירות.
3. זמני המתנה (Timeouts): CloseTimeout לסגירת חיבור, OpenTimeout לפתיחתו, ReceiveTimeout לזמן ללא הודעות לפני סגירה אוטומטית, ו-SendTimeout לזמן הכתיבה ללקוח.
4. באפרים: MaxBufferSize הוא הגודל המקסימלי של באפר לשמירה זמנית של הודעה. MaxBufferPoolSize הוא הגודל הכולל של המנגנון שמנהל את ההודעות. לפי השיעור, באפר קטן מדי מביא לעבודה מוגברת של ה-CLR, ובאפר גדול מדי מחזיק זיכרון מיותר. יש לבחור גודל מתאים.
5. TransferMode: Buffered או Streamed. Streamed מתאים להעברת וידאו.
6. TextEncoding ו-MessageEncoding: למשל UTF-8, או Text ו-MTOM.
7. Name: השם שבו הלקוח מזהה את ההגדרה.
הדגמה
1. מגדירים את ההגדרות בשרת. בעדכון ההפניה בלקוח חלק מההגדרות מופיעות ב-App.config של הלקוח. לא כולן עוברות, למשל ה-Timeouts שמשמשים רק את השרת.
2. מתקבלת שגיאה שאומרת ש-MaxBufferSize, MaxReceivedMessageSize ו-MaxBufferPoolSize צריכים להיות באותו גודל. לכן מגדירים את כולם ל-100,000 בתים.
3. מוסיפים שם להגדרה, למשל MyCalculatorBindingConfiguration, כדי לשלוט בשם שנוצר ב-App.config.
ההגדרה נשמרת בצד השרת, וחלק ממנה עובר ללקוח דרך App.config.
השיעור הבא בקורס: Configuration File

פרקי ההרצאה: Binding Configuration

  1. 00:00

    הגדרות נוספות לביינדינג

  2. 00:57

    קוקיז ו-Bypass Proxy On Local

  3. 01:48

    הגדרות Timeout של הקונקשן

  4. 02:46

    Send Timeout ומגבלות הבאפר

תמלול ההרצאה: Binding Configuration

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

  1. 00:20

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

  2. 00:31

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

  3. 00:51

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

  4. 01:13

    לאותו קליינט כמובן. יש לנו כאן אפשרות של bypass proxy on local. מה זה אומר? אם השרת קיים באיזשהו מחשב וקיים לנו גם לקוח על אותו המחשב ספציפית, האם אנחנו רוצים שהלקוח ישתמש בפרוקסי שנוצר או שיעקוף אותו וישתמש ישירות במחלקות של השרת?

  5. 01:34

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

  6. 01:48

    בואו נסתכל על ההגדרות השונות. לדוגמה Close timeout זה בעצם מציין כמה זמן אנחנו מאשרים שיעבור מבחינת timeout for a connection to close before the transport raises an exception כלומר אם יש לנו איזשהו קונקשן מהשרת שנפתח כמה זמן אנחנו מאשרים לו שהוא ייסגר דברים נוספים שקשורים לטיימאוט יש לנו כאן בעצם ארבעה דברים Open timeout כמה זמן אנחנו מאשרים לקונקשן

  7. 02:22

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

  8. 02:38

    ויש לנו send timeout שמתאר לנו for a right operation to complete before the transport raises an exception. כלומר, כמה זמן אנחנו מאשרים שתתבצע הכתיבה עצמה ללקוח.

  9. 02:55

    הגדרות נוספות שיש לנו זה הגדרות שקשורות ל-buffer. יש לנו כאן Max Buffer Pool Size ו-Max Buffer Size. בואו נתחיל עם Max Buffer Size.

  10. 03:06

    כאשר אנחנו מקבלים הודעה אז המידע נרשם לתוך באפר שזה אזור זיכרון ששומר זמנית את ההודעה עד שהוא באמת מעביר אותה. ו-Max Buffer Size אומר לנו כמה המקסימום של הבייפר שאנחנו רוצים.

  11. 03:19

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

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

ההרצאה הקודמת: Multiple Bindings Host

ההרצאה הבאה: Configuration File

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

  • Property Binding
  • קליטת מידע מהמשתמש בריאקט React Two Way binding

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

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