
cd.svcutil עם כתובת ה-WSDL. התוצאה היא קובץ Calculator.cs וקובץ הגדרות בשם output.config, ששמו משתנה ל-app.config./out קובע את שם קובץ הפלט./config קובע את שם קובץ ההגדרות./mergeConfig משלב את ההגדרות לתוך קובץ app.config קיים./noConfig מייצר פרוקסי בלי קובץ הגדרות./namespace קובע את מרחב השמות./language קובע את שפת התכנות, למשל VB./internal ו-/async מציעים את אותן אפשרויות שיש ב-Add Service Reference.הטקסט המלא של הדקות הראשונות בהרצאה «Proxy - svcutil» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הייתה אנחנו הולכים לראות שיטה נוספת לייצר פרוקסי. כאשר אנחנו מקודם ביצענו פרוקסי, אז כל מה שעשינו זה מכה שימני על רפרנסס עד סרוויס רפרנס והתחברנו לקובץ ה-WSDL ואז ויז'א סטודיו הורידה אותו ולפיו קראה אותו ויצרה לנו פרוקסי.
בשביל לעשות את זה היו צריכים להיות שני דברים. א', ההוסט היה אמור להיות באוויר. ב', אם אנחנו נזכר במה שכתבנו בהוסט אנחנו נראה שיש לנו פה behavior.http-get-enabled = droop זה אומר שקובץ ה-WSDL אכן נמצא באוויר ואכן קליינטים יכולים להתחבר אליו
אם זה המצב זה אומר שכאשר הסרוויס שלי באוויר כל קליינט בעולם ברגע שיש לו את טובת ה-WSDL הזאת יוכל פשוט להתחבר אליו על ידי זה שהוא לוחץ מקש עם מניע ל-references add service reference ליצור לעצמו פרוקסי ולהתחיל להשתמש בשירות שלנו יכול להיות מצב שאנחנו לא רוצים שזה יקרה.
מתי זה יכול להיות? כאשר יש לנו Web Service שעלינו להעביר ואנחנו רוצים רק קליינטים ספציפיים לתת להם את הפרוקסי או לאפשר להם לקחת פרוקסי ואז אנחנו לא רוצים שאף קליינט בעולם יוכל להתחבר על ידי Add Service Reference.
אז כמובן אחרי שהקליינטים האלה ביצעו Add Service Reference אנחנו יכולים לעבור ולהוריד את זה ל-False ואז הם לא יוכלו להתחבר. ואנחנו הולכים לראות שיטה נוספת לעשות את זה.
אז לצורך כך, בואו קודם כל ניפטר מה Service Reference שהיה לנו ב-Client. נלך לכלכלתור דמו, נמחוק אותו. נמחוק גם את ה-App Config וגם את ה-Service Reference.
בואו נבצע delete על ה-AppConfig, delete על ה-Service Reference, ובכדי שלא יהיו לנו שום שגיאות קומפילציה, אז בואו באמת נכבה או נככב את כל הקוד שכתבנו ב-Consumer.
אז את זה אנחנו הולכים כרגע לבצע בהערה, ויש לנו את זה בהערה, כאילו ש-Consumer עדיין לא נכתב. אוקיי, אז איך אנחנו הולכים לייצר פרוקסי? דבר ראשון, בשביל לייצר פרוקסי עדיין ה-Host חייב להיות באוויר, ועדיין ה-HTTP Get Enabled חייב להיות True, מה שמציין לי שהמסמך WSDL גם הוא באוויר.
דבר הבא שאני עושה, אני פותח את ה-Command Line של Visual Studio. בואו נלך ל-Programs, Microsoft Visual Studio 2010, Visual Studio Tools, ואני בוחר ב-Visual Studio Command Prompt 2010. עכשיו, נבצע פה קצת ניקיון, נלך ל-Conan C, נמחוק את כל מה שהיה,
ואני רוצה להגיע כרגע לתיקייה של ה-Consol Host. אז בואו נפתח אותה בסלושן אקספלורר, נעתיק את כל הנתיב הזה, קונטרול פי, נחזור בחזרה ונרשום cd ונדביק את כל הנתיב איפה אנחנו רוצים לייצר את הפרוקסי.
נבצע פייסט ונלחץ אנטר. אוקיי, בואו נעבור קודם כל לקונן d. אוקיי, אז יש לנו כרגע את הנתיב המדויק שבו נמצא פרויקט הקונסול הוסט שלנו.
אם עכשיו אני אייצר קבצים דרך הקומנד פרומפט הזה אז הם ייווצרו אוטומטית בתיקייה הזאת של הקונסול הוסט. הדבר הבא שאנחנו עושים אנחנו משתמשים בכלי שנקרא svcutil זה כלי של ויז'ואל סטודיו או יותר נכון של wcf ליתר דיוק שמאפשר לנו ליצור פרוקסי.
אנחנו יכולים לרשום svcutil.exe או פשוט svcutil וכל מה שאנחנו צריכים לתת לו זה את הכתובת של מסמך ה-WSDL שיושב בשרת. כמובן שלפני זה אנחנו צריכים להריץ את ה-host.
אז בואו נגדיר אותו כ-set a start-up project, נריץ אותו. כרגע ה-host באוויר, נוריד את זה למטה. נעתיק את הכתובת של מסמך ה-WSDL, נחזור ל-visual studio command prompt, ונדביק כאן את הכתובת של המסמך, paste.
ועכשיו אני לוחץ Enter, ואני רואה שכתב לי פה כל מיני דברים, בואו נסתכל אם באמת הוא בנה לי אותם. אוקיי, אני רואה מה הטעות, הטעות זה שכתבתי פה TTP במקום HTTP, אז בואו נחזור בחזרה, נגדיר עוד פעם את הפקודה האחרונה, ונרשום את זה בלי שגיאת הקלדה, HTTP, נחזור, נבצע Enter,
ואני רואה שהוא Generating Files, ואכן זה הצליח, והמערכת יצרה לי את הפרוקסי מקומית בתיקייה של הקונסול הוסט. אז בואו נסתכל עליהם.
אז נחזור לתיקייה של הקונסול הוסט, ונראה שנוצרו לי פה שני קבצים, Calculator.cs ו-Output.config. כאשר אנחנו ביצענו מקודם Add Service Reference דרך ה-Consumer, אז אנחנו ראינו שגם נוצר לי תיקיית ה...
יותר נכון קובץ Reference.cs שהחזיק את מחלקות הפרוקסי, וגם הוא יצרנו אפ קונפיג בכדי שהקונסומר יוכל להשתמש איתו.
גם כאן נוצרו לי שני הקבצים האלה, רק הוא יוצר לי את זה by default כ-output.config אז בואו נשנה את זה ל-app.config וכל מה שאנחנו צריכים לעשות עכשיו זה לחזור ולפגור את הפוסט להוריד את זה לפלס וכרגע מה שזה אומר זה שמסמך ה-WSDL לא חשוף ללקוחות באוויר.
זאת אומרת שאף לקוח בעולם לא יכול להשתמש