Article ID: 820729
הרחב הכל | כווץ הכל

On This Page

תקציר

מאמר זה מתאר את יכולות רישום השגיאות של רכיבי API של Hypertext Transfer Protocol (HTTP).

חלק מהשגיאות שמתרחשות ביישומים המבוססים על HTTP מטופלות באופן מידי באמצעות API של HTTP במקום לעבור חזרה ליישום לטיפול. אופן פעולה זה מתרחש מכיוון שהתדירות של שגיאות כאלה עלול להציף יומן אירועים או מטפל ביישום.

הנושאים הבאים מתארים את ההיבטים השונים של רישום שגיאות API של HTTP:

מידע נוסף

קביעת תצורה של רישום שגיאות API של HTTP

כדי שנקבע עבורך את תצורת רישום שגיאות API של HTTP, עבור לסעיף "תקנו עבורי". אם אתה מעדיף לקבוע בעצמך את תצורת רישום שגיאות API של HTTP, עבור לסעיף "אני מעדיף לתקן בעצמי".

תקנו עבורי



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

Disable HTTP API error logging
Microsoft Fix it 50635
Enable HTTP API error logging
Microsoft Fix it 50634


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



אני מעדיף לתקן בעצמי

שלושה ערכי רישום תחת מפתח HTTP \Parameters שולטים ברישום שגיאות API של HTTP. מפתחו אלה ממוקמים במפתח הרישום הבא:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
הערה המיקום והצורה של ערכי התצורה עשוי להשתנות בגירסאות חדשות של מערכת ההפעלה Microsoft Windows.

יידרשו לך אישורי מנהל מערכת/מערכת מקומית כדי לשנות את ערכי הרישום, וכדי להציג או לשנות את קבצי הרישום את התיקיה שמכילה אותם.

מידע תצורה בערכי הרישום נקרא כאשר מנהל התקן ה- API של HTTP מופעל. לפיכך, אם תשנה את ההגדרות עליך לעצור ולאחר מכן להפעיל מחדש את מנהל ההתקן כדי לקרוא את הערכים החדשים. לשם כך, הקלד את פקודות המסוף הבאות:
net stop http
net start http
מוסכמת השמות הבאה משמשת למתן שמות לקבצי יומן הרישום:
httperr + מספר רצף + .log
דוגמה: httperr4.log
קבצי יומן רישום עוברים במחזוריות כאשר הם מגיעים לגודל המרבי שערך הרישום ErrorLogFileTruncateSize מציין. ערך זה לא יכול להיות קטן יותר ממגה-בית (MB) אחד.

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

הטבלה הבאה מתארת את ערכי תצורת הרישום.
כווץ את הטבלההרחב את הטבלה
ערך רישוםתיאור
EnableErrorLoggingDWORD שאותו תוכל להגדיר כ- TRUE כדי להפוך רישום שגיאות ביומן לזמין או כ- FALSE כדי להפוך אותו ללא זמין. ערך ברירת המחדל הוא TRUE.
ErrorLogFileTruncateSizeDWORD שמציין את הגודל המרבי של קובץ יומן שגיאות, בבתים. ערך ברירת המחדל הוא MB אחד (0x100000).

הערה הערך שצוין לא יכול להיות קטן יותר מערך ברירת המחדל.
ErrorLoggingDirמחרוזת שמציינת את התיקיה שאליה ה- API של HTTP מעבר את קבצי יומן הרישום שלו.

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

התיקיה הבאה היא ברירת המחדל כאשר לא צוינה תיקיה ברישום:
%SystemRoot%\System32\LogFiles

הערה ערך המחרוזת ErrorLoggingDir חייב להיות נתיב מקומי מלא. עם זאת, הוא יכול להכיל %SystemRoot%. לא ניתן להשתמש בכונן רשת או במיקום קבצים משותף.

תבנית של יומני שגיאות של API של HTTP

באופן כללי, לקבצי יומן שגיאות של API של HTTP יש תבנית זהה לזו של קבצי שגיאות W3C, אלא שקבצי יומן שגיאות של API של HTTP לא מכילים כותרות של עמודות. כל שורה של יומן שגיאות API של HTTP רושמת שגיאה אחת. השדות מופיעים בסדר ספציפי. תו יחיד של רווח (0x0020) מפריד כל שדה מהשדה הקודם. בכל שדה, סימן החיבור (0x002B) מחליף תווי רווח, תווי אטב ותווי בקרה שאינם ניתן להדפסה.

הטבלה הבאה מזהה את השדות ואת סדר השדות ברשומת יומן שגיאות.
כווץ את הטבלההרחב את הטבלה
שדהתיאור
תאריךהשדה 'תאריך' הוא לפי התבנית של W3C. שדה זה מבוסס על זמן אוניברסלי מתואם (UTC). אורכו של השדה 'תאריך' הוא תמיד עשר ספרות בתבנית YYYY-MM-DD. לדוגמה, 1 במאי, 2003 יבוטא כך: 2003-05-01.
שעההשדה 'שעה' הוא לפי התבנית של W3C. שדה זה מבוסס על UTC. אורכו של השדה 'שעה' הוא תמיד שמונה ספרות בתבנית MM:HH:SS. לדוגמה, 17:30 (UTC) יבוטא בתור 17:30:00.
כתובת IP של לקוחכתובת ה- IP של הלקוח המושפע. הערך בשדה זה יכול להיות כתובת IPv4 או כתובת IPv6. אם כתובת ה- IP של הלקוח היא כתובת IPv6, השדה ScopeId נכלל גם הוא בכתובת.
יציאת לקוחמספר היציאה של הלקוח המושפע.
כתובת IP של שרתכתובת ה- IP של השרת המושפע. הערך בשדה זה יכול להיות כתובת IPv4 או כתובת IPv6. אם כתובת ה- IP של השרת היא כתובת IPv6, השדה ScopeId נכלל גם הוא בכתובת.
יציאת שרתמספר היציאה של השרת המושפע.
גירסת פרוטוקולגירסת הפרוטוקול שנמצאת בשימוש.

אם החיבור לא נותח במידה מספקת כדי לקבוע את גירסת הפרוטוקול, מקף (0x002D) משמש כמציין מיקום עבור השדה הריק.

אם מספר הגירסה הראשי או מספר הגירסה המשנה שנותח גדול יותר מ-10 או שווה לו, הגירסה תירשם כ- HTTP/?.?.
פועלמצב הפועל שהבקשה האחרונה שנותחה העבירה. פעלים לא ידועים כלולים, אך כל פועל שאורכו עולה על 255 בתים מקוצר לאורך זה. אם פועל אינו זמין, מקף (0x002D) משמש כמציין מיקום עבור השדה הריק.
CookedURL + שאילתהכתובת ה- URL וכל שאילתה שמשויכת לה נרשמות כשדה אחד שמופרד באמצעות סימן שאלה (0x3F). שדה זה מקוצר כאשר אורכו עולה על המגבלה של 4096 בתים.

אם כתובת URL זו נותחה ("בושלה"), היא נרשמת עם המרת דף קוד מקומי, ונחשבת לשדה Unicode.

אם כתובת URL זו לא נותחה ("בושלה") בעת הרישום, היא מועתקת במדויק, ללא כל המרת Unicode.

אם ה- API של HTTP לא יכול לנתח כתובת URL זו, מקף (0x002D) משמש כמציין מיקום עבור השדה הריק.
מצב פרוטוקולמצב הפרוטוקול לא יכול להיות יותר מ- 999.

אם מצב הפרוטוקול של התגובה לבקשה זמין, הוא נרשם בשדה זה.

אם מצב הפרוטוקול אינו זמין, מקף (0x002D) משמש כמציין מיקום עבור השדה הריק.
SiteIdלא משמש בגירסה זו של API של HTTP. מקף (0x002D) מציין מיקום מופיע תמיד בשדה זה.
ביטוי סיבהשדה זה מכיל מחרוזת שמזהה את סוג השגיאה שנרשמת. שדה זה לעולם לא נשאר ריק.
שם תורזהו שם תור הבקשה.
השורות הבאות לדוגמה הן מיומן שגיאות API של HTTP:
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 ? ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400 ? Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

סוגי שגיאות ש- API של HTTP רושם

ה- API של HTTP רושם תגובות שגיאה ללקוחות, תום זמן קצוב של חיבורים, בקשות מיותמות וחיבורים מנותקים המטופלים באופן שגוי.

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

AppOfflineשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין כיוון ששגיאות יישום גרמו ליישום לעבור למצב לא מקוון.
AppPoolTimerשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין כיוון שתהליך מאגר היישומים עסוק מדי מכדי שיוכל לטפל בבקשה.
AppShutdownשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין כיוון שהיישום נסגר באופן אוטומטי בתגובה למדיניות מנהל מערכת.
BadRequestשגיאת ניתוח אירעה במהלך עיבוד בקשה.
Client_Resetחיבור בין הלקוח לשרת נסגר לפני שניתן היה להקצות את הבקשה להליך עבודה. הסיבה הנפוצה ביותר לאופן פעולה זו היא שהלקוח סוגר את החיבור שלו לשרת מוקדם מדי.
Connection_Abandoned_By_AppPoolהליך עבודה ממאגר היישומים הסתיים באופן לא צפוי או שגרם לבקשה ממתינה להיות מיותמת על-ידי סגירת המטפל שלה.
Connection_Abandoned_By_ReqQueueהליך עבודה ממאגר היישומים הסתיים באופן לא צפוי או שגרם לבקשה ממתינה להיות מיותמת על-ידי סגירת המטפל שלה. ספציפי ל- Windows Vista ו- Windows Server 2008.
Connection_Droppedהחיבור בין הלקוח לשרת נסגר לפני שהשרת היה יכול לשלוח את מנת התגובה הסופית. הסיבה הנפוצה ביותר לאופן פעולה זו היא שהלקוח סוגר את החיבור שלו לשרת מוקדם מדי.
Connection_Dropped_List_Fullרשימת החיבורים שהתנתקו בין הלקוחות והשרת מלאה. ספציפי ל- Windows Vista ו- Windows Server 2008.
ConnLimitשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין עקב הגעה למגבלת החיבורים ברמת האתר או חריגה ממנה.
Connections_Refusedזיכרון הליבה NonPagedPool ירד מתחת ל- 20MB ו- http.sys הפסיק לקבל חיבורים חדשים
מושבתשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין מכיוון שמנהל מערכת העביר את היישום למצב לא זמין.
EntityTooLargeישות חרגה מהגודל המרבי המותר.
FieldLengthהיתה חריגה ממגבלת אורך שדה.
אסוררכיב או רצף אסור הופיע במהלך הניתוח.
כותרתשגיאת ניתוח אירעה בכותרת.
Hostnameשגיאת ניתוח אירעה במהלך עיבוד Hostname.
פנימיאירעה שגיאת שרת פנימית (שגיאת 500 של HTTP).
Invalid_CR/LFהחזרת גררה או הזנת שורה לא חוקית אירעה.
LengthRequiredערך אורך נדרש היה חסר.
לא זמיןשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין כיוון שהתרחשה שגיאה פנימית (כגון תקלת הקצאת זיכרון).
N/Iארעה שגיאה שלא יושמה (שגיאת 501 של HTTP), או ארעה שגיאת שירות לא זמין (שגיאת 503 של HTTP) עקב קידוד העברה לא ידוע.
מספרשגיאת ניתוח אירעה במהלך עיבוד מספר.
תנאי מוקדםתנאי מוקדם נדרש היה חסר.
QueueFullשגיאת שירות לא זמין התרחשה (שגיאת 503 HTTP). השירות אינו זמין כיוון בתור בקשות היישום מלא.
RequestLengthהיתה חריגה ממגבלת אורך בקשה.
Timer_AppPoolפג תוקפו של החיבור כיוון שבקשה המתינה זמן רב מדי בתור מאגר יישומים עבור יישום שרת שיוציא אותה מהתור ויעבד אותה. משך זמן קצוב זה הוא ConnectionTimeout. כברירת מחדל, ערך זה מוגדר לשתי דקות.
Timer_ConnectionIdleפג תוקפו של החיבור והוא נשאר לא פעיל. ברירת המחדל של משך ConnectionTimeout היא שתי דקות.
Timer_EntityBodyפג תוקפו של החיבור לפני הגעת גוף ישות הבקשה. כאשר ברור שלבקשה יש גוף ישות, ה- API של HTTP API מפעיל את שעון העצר Timer_EntityBody. בתחילה, המגבלה של שעון עצר זה מוגדר לערך ConnectionTimeout (בדרך כלל 2 דקות). בכל פעם שאינדיקציית נתונים מתקבלת בבקשה זו, ה- API של HTTP מאפס את שעון העצר כדי לתת לחיבור שתי דקות (או מה שצוין בערך ConnectionTimeout).
Timer_HeaderWaitפג תוקפו של החיבור כיוון שניתוח הכותרת של בקשה נמשך זמן רב יותר ממגבלת ברירת המחדל של שתי דקות.
Timer_MinBytesPerSecondפג תוקפו של החיבור כיוון שהלקוח לא קיבל תגובה במהירות סבירה. קצב שליחת התגובות היה איטי יותר מברירת המחדל של 240 בתים לשנייה. ניתן לשלוט בקצב זה באמצעות מאפיין ה- Metabse MinFileBytesPerSec.
Timer_ReqQueueפג תוקפו של החיבור כיוון שבקשה המתינה זמן רב מדי בתור מאגר יישומים עבור יישום שרת שיוציא אותה מהתור. משך זמן קצוב זה הוא ConnectionTimeout. כברירת מחדל, ערך זה מוגדר לשתי דקות. ספציפי ל- Windows Vista ו- Windows Server 2008.
Timer_Responseשמור. לא בשימוש כרגע.
Timer_SslRenegotiation פג תוקפו של החיבור כיוון שמשא ומתן SSL בין הלקוח והשרת נמשך זמן רב יותר מאשר ברירת המחדל של תום הזמן הקצוב של שתי דקות.
URLשגיאת ניתוח אירעה במהלך עיבוד כתובת URL.
URL_Lengthכתובת URL חרגה מהגודל המותר המרבי.
פועלשגיאת ניתוח אירעה במהלך עיבוד פועל.
Version_N/Sשגיאת גירסה לא נתמכת התרחשה (שגיאת 505 HTTP).

מידע נוסף

לקבלת מידע נוסף על הוספת שדות רישום נוספים עבור רישום שגיאות HTTP של IIS, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:
832975 מאפיינים נוספים זמינים כעת לרישום ביומן בקובץ Httperr#.log ב- IIS 6.0 וב- IIS 7.0 (ייתכו שטקסט זה מוצג באנגלית)
הערה זהו מאמר "פרסום מהיר" שנוצר ישירות מתוך ארגון התמיכה של Microsoft. המידע הכלול במסמך זה מסופק כפי שהוא בתגובה לבעיות שצצות. לאור הקצב המהיר של פרסום החומרים, ייתכן שהחומרים יכללו שגיאות הקלדה ואנו עשויים לתקן אותם בכל עת, ללא הודעה מוקדמת. למידע על שיקולים אחרים, עיין בתנאי השימוש.

מאפיינים

Article ID: 820729 - Last Review: יום שישי 30 נובמבר 2012 - Revision: 2.0
מילות מפתח 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

ספק משוב

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com