בעיית ביצועים כאשר אתה משתמש ב- WCF כדי לשלוח הודעות XML SOAP ב- 4.6 Framework של .NET

עבוד בכל מקום מכל מכשיר באמצעות Microsoft 365

שדרג ל-Microsoft 365 כדי לעבוד בכל מקום באמצעות התכונות והעדכונים האחרונים.

שדרג עכשיו

מאפייני הבעיה

נניח כי ששדרגת ל- Microsoft .NET Framework 4.6 במחשב שלך. כאשר אתה משתמש יישום המשתמש ב- Windows תקשורת Framework (WCF) לשליחת הודעות XML SOAP, הקידוד ייתכן יימשך מעט יותר זמן. במקרים מסוימים, הדבר עשוי להשפיע על הקצב שבו יישום שרת יכול לעבד בקשות.

הגורם

בעיה זו מתרחשת עקב מהדר Just-In-Time (JIT) חדש בשם RyuJIT. מהדר זו משתמשת מיטובים שונים ממהדר JIT64 מדור קודם. שיטה על נתיב קוד חם לקידוד מחרוזות XmlDictionaryWriter לא ממוטבת עבורו מהדר JIT חדש ואת ההוראות מקורי שנוצר לפעול בצורה איטית יותר הקידוד אורכת זמן רב. כאשר הודעת SOAP מכילה מספר גדול של מחרוזות לקידוד, קוד זה איטי יותר משמש לעתים קרובות יותר ואין עשוי להשפיע על הזמן הקידוד.

פתרון

כדי לעקוף בעיה זו, קבע את תצורת היישום כדי לבטל את השימוש ngen עבור ההרכבה System.Runtime.Serialization.dll וכדי להשתמש במנוע JIT מדור קודם. לשם כך, השתמש באחת מהשיטות הבאות:

  • הגדר את משתני הסביבה הבאים:

    COMPLUS_useLegacyJit=1
    COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization

  • ברישום, ליצור אחד ממפתחות המשנה הבאים:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework

    לאחר מכן, הוסף את הערכים הבאים:

    • שם המפתח: useLegacyJit
      סוג: REG_WORD
      ערך: 1

    • שם המפתח: DisableNativeImageLoadList
      סוג: REG_SZ
      ערך: System.Runtime.Serialization

  • הוסף את הטקסט הבא < יישום >. קובץ exe.config. יצירת מקטעים שצוין אם הם אינם קיימים כבר.<configuration> <runtime>
    <useLegacyJit enabled="1">
    <disableNativeImageLoad>
    <assemblyIdentity name="System.Runtime.Serialization" />
    </disableNativeImageLoad>
    </runtime>
    </configuration>



לקבלת מידע נוסף אודות בעיות מוכרות ב- 4.6 Framework של .NET, ראה בעיות עבור 4.6 Framework של .NET מוכרות.

מידע נוסף

לקבלת מידע נוסף אודות השינויים ניהול גירסאות מוצר ואפקטים שלהם ב- 4.6 Framework של .NET, ראה תאימות היישומים ב- 4.6 Framework של .NET.

זקוק לעזרה נוספת?

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Microsoft insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×