WCF and CORS

יום רביעי, מאי 11, 2016

בעיית ה – Cross domain היא בעיה ידועה ומוכרת אשר חוסמת פניות AJAX מדומיין אחד לדומיין שני ללא הרשאות מפורשות, כאשר מארחים WCF על IIS, ניתן לפתור את הנושא בעזרת הוספת Headers רלוונטיים ב – Web.config, לעומת זאת כאשר מארחים WCF ב – Windows Service לדוגמא, הדברים קצת מסתבכים. לפני הכול נסביר את הבעיה של Cross domain, התשובה שנשלפת מהמותן  לשאלה של “מה הבעייה” היא “בעיית אבטחה”, אבל עם טיפה מחשבה, נבין שלכאורה אין שום בעיה מ – AJAX לפנות לשרת שלנו שיהווה פרוקסי והוא יפנה לשרת המרוחק, ואז אין שום בעייה (הרי כך עובד כל Web Service) אז...
אין תגובות

קבלת מיקוד לפי כתובת וכתובת לפי מיקוד (ובנוסף רשימת ערים ורחובות בישראל)

יום שלישי, אוגוסט 19, 2014

לאחרונה הייתי צריך לקבל מיקוד לפי כתובת, יש את השירות של דואר ישראל לקבלת מיקוד לפי כתובת וקבלת כתובת לפי מיקוד, כמובן שזה לא עוזר לי מכיוון שאני צריך את המידע בקוד. לאחר חיפושים מצאתי שיש תוסף לכרום שעושה זאת שנכתב על ידי עומרי, לאחר התקנה של התוסף, הסתכלתי בקוד שלו (שנמצא C:\Users\{user}\AppData\Local\Google\Chrome\User Data\Default\Extensions\gkjdlidimdcgmohgflkklbhkphgfpkfk\1.3_0) ויש לו שם קוד מעניין שעושה את העבודה. אני לא רציתי לפנות מהאתר שלי ישר לדואר ישראל, מכמה סיבות, כדי שבדפדפן לא יראו פנייה לדואר ישראל, אולי ניהול מטמון לתוצאות, והיכולת לקבל את השירות באפליקציות שהם לא WEB. לכן כתבתי WCF Service שחושף את המידע,...
תגיות: ,
8 תגובות

Enums on client side of WCF Data Services

יום רביעי, מרץ 26, 2014

לאחרונה יצא לי להתעסק עם WCF Data Services – אחד הדברים שהציקו לי היה העבודה עם enum, אמנם החל מ – Entity Framework 6 יש תמיכה ב – enums במודל, אבל לא בעבודה עם DataServices, במידה והמודל יכיל Enum Type לא ניתן יהיה לבצע Add Service Reference. אחד הפתרונות שחשבתי לעשות הוא לכתוב בצד הלקוח קוד כמו זה: Code Snippet namespace DataCache.ServiceReference{    public partial class DegreeType    {        public EDegreeType EType        {            get            {                return (EDegreeType)this.Type;            }            set            {                this.Type = (int)value;            }        }    }    public enum EDegreeType    {                Before,                After    }} כך בצורה זו –...
3 תגובות

Download file from WCF service using WebGet

יום ראשון, יולי 14, 2013

נשאלתי כיצד ניתן להוריד קובץ pdf משירות WCF התומך ב – WebGet. (להורדת קוד המקור) קוד צד השרת הוא פשוט, בסך הכול להחזיר stream (בדוגמא הבאה השתמשתי ב – PdfSharp) Code Snippet public class FileService : IFileService {     public Stream GetFile() ...
תגיות: , , , ,
אין תגובות

Google search from code

יום שישי, פברואר 17, 2012

  הגיעה אלי בקשה מעניינת.   "יש לנו בסיס נתונים המכיל ספקים, לכל ספק יש עשרות מוצרים ואנחנו לא מעוניינים להכניס לבסיס הנתונים את הקשר בין מוצרים לספקים מכיוון שיש יותר מידי, מה ניתן לעשות כדי לחסוך את הצורך להכניס ידנית את המידע."   הפיתרון שהצעתי להם הוא אמנם לא מושלם אבל בהחלט מספק אותם.   כידוע לגוגל יש אפשרות חיפוש בתוך אתר, לדוגמא: shlomo goldberg site:sela.co.il יחפש את השם shlomo goldberg בתוך האתר של סלע.   הרעיון היה להכניס לבסיס הנתונים רק את כתובת האתר של כל ספק, ובזמן שהמשתמש יחפש את המוצר, מקוד נבצע פנייה לגוגל עבור כל אחד מהספקים ונחזיר את התוצאה הראשונה (כשכמובן מודעים...
תגיות: , , , ,
3 תגובות

Web Service – basic

יום שלישי, דצמבר 6, 2011

  בתפוז עלתה השאלה כיצד מתחילים לעבוד עם web services, בפוסט זה אני אדגים את השלבים צעד אחר צעד לאלו המתחילים את דרכם בעולם ה - web.     בפרוייקט ה - web צריך להוסיף item חדש מסוג web service (סיומת asmx) - נקרא לו MyWebService.   יווצרו שני קבצים - הראשון MyWebService.asmx שאם תלחצו עליו עם העכבר ותבחרו ב - View Markup תראו שיש בו את השורה הבאה בלבד   <%@ WebService Language="C#" CodeBehind="MyWebService.asmx.cs" Class="WebApplication10.MyWebService" %>   שכל מה שכתוב כאן - היכן נמצא הקוד של ה - WebService.   הקובץ השני נקרא MyWebService.asmx.cs המכיל את הקוד שלנו. כברירת מחדל נקבל את הקוד הבא:   // To allow this...
5 תגובות

שליחת מערך של מחרוזות ב – GET לשירות שנכתב ב – WCF המוגדר לעבודה עם REST

יום שלישי, אוקטובר 11, 2011

    באחד הפוסטים בסדרת WCF הראיתי כיצד ניתן להגדיר שירותי WCF שיעבדו ב - REST ונוכל לגלוש אליו מהדפדפן בעזרת GET.   לפעמים אנחנו צריכים לקבל כפרמטר מערך של מחרוזות, במידה ונעשה את זה נקבל את השגיאה המפורטת, מה שאומר שהוא לא יודע כיצד להמיר את ה - query string למערך של מחרוזות.   Operation 'OPERATION' in contract 'CONTRACT' has a query variable named 'VARIABLE' of type 'System.String', but type 'System.String' is not convertible by 'QueryStringConverter'.  Variables for UriTemplate query values must have types that can be conve   מצאתי את הפתרון כאן, הרעיון הוא להגדיר Converter משלנו שיידע להמיר את ה - query string למערך של...
תגיות: ,
2 תגובות

WCF 4 (Windows Communication Foundation) for Beginner – Table of content

יום רביעי, אוגוסט 17, 2011

  כתבתי מדריך די מפורט בעל ארבעה עשר פרקים למתחילים בעולם ה - WCF,   לכל מי שמתחיל בעולם ה - WCF, או מי שרוצה להבין את היסודות, המדריך הזה הוא המקום להתחיל.       חלק ראשון - בו אדבר על מה זה Service ומה זה Contract. נושאים בחלק ראשון: מה המשמעות של Service. מה זה Contract ומה ההבדל בין ServiceContract לבין OperationContract. כיצד מתחילים לכתוב Service. מה זה DataContract ומה זה DataMember.   חלק שני - בו אספר לכם כיצד להרים Services לאויר (Hosting) נושאים בחלק שני: סיכום דוגמת קוד להגדרה של Service מהפרק הקודם. מי מחזיק את השירות באויר. מה זה Endpoint. הגדרה של Endpoint בקונפיג. מה זה Binding. הגדרה של Service Host והרמת השירות הראשון שלנו לאויר. חלק...
תגיות: ,
4 תגובות

קבלת ה – Id החדש אחרי פעולת Insert בעבודה עם WCF Ria Services

יום שני, יוני 27, 2011

  במקרים שבהם אתם עובדים עם WCF Ria Services סביר להניח שאתם גם מפעילים פעולות Insert מול השירות על אובייקטים שיצרתם לוקלית.   לרוב נרצה לקבל את ה - Id שנוצר בבסיס הנתונים בחזרה מהפונקציה.   כדי לעשות זאת נכתוב קוד כזה:   Work item = new Work() {     // set all properties            };   _context.Works.Add(item); _context.SubmitChanges(so =>     {         // work.Id is now the id from server     }, null);
תגיות: , ,
3 תגובות

WCF 4 (Windows Communication Foundation) for Beginner – part 14

יום שני, מרץ 28, 2011

  ללמוד WCF 4 פרק 14 - היכרות עם האופציות להגדרת המופעים של ה - Services, ועבודה עם כמה תהליכים במקביל.     נושאים בפרק 14. היכרות עם הגישות השונות של יצירת מופעים. כיצד לאפשר PerSession גם ב - http. היכרות עם הגישות השונות לעבודה עם כמה קריאות לשירות בו זמנית.     היכרות עם הגישות השונות של יצירת מופעים. כשכותבים שירות אנחנו יכולים להחליט באיזה מוד נעבוד, כלומר - כשמישהו יפנה ל - host וירצה להפעיל את אחד מהמתודות, ה - host יוכל להחליט:     האם לייצר מופע עבור כל קריאה - כלומר - בכל פעם שמישהו יפעיל מתודה יווצר מופע חדש של ה - service, אופצייה זאת נקראת PerCall.   אופציה נוספת היא...
תגיות: ,
תגובה אחת