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

הערה

ערכי ברירת המחדל עבור פרמטרים אלה אשר ניתן להגדיר באמצעות קוד, מחרוזת החיבור ושיטות אחרות הוא כדלהלן: זמן קצוב לחיבור – 15 שניות שאילתה או זמן קצוב לפקודה – 30 שניות

System.Data.SqlClient.SqlException: תם הזמן הקצוב. משך הזמן הקצוב חלף לפני השלמת הפעולה או שהשרת אינו מגיב.  ב- System.Data.SqlClient.SqlInternalConnection.OnError (חריגה SqlException, breakConnection בוליאניים)  ב- System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj)  ב- System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, שגיאה UInt32)  ב- System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult, TdsParserStateObject stateObj)  ב- System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()  ב- System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake (בוליאני להצפין, trustServerCert בוליאניים, בוליאני & marsCapable)  ב- System.Data.SqlClient.TdsParser.Connect (serverInfo ServerInfo, SqlInternalConnectionTds connHandler, ignoreSniOpenTimeout בוליאניים, Int64 timerExpire, בוליאני להצפין, trustServerCert בוליאניים, integratedSecurity בוליאניים, SqlConnectionowningObject)  ב- System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfoserverInfo, newPassword מחרוזת, ignoreSniOpenTimeout בוליאניים, Int64 timerExpire, SqlConnection owningObject)  ב- System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (מארח מחרוזת, מחרוזת newPassword, redirectedUserInstance בוליאניים, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)  ב- System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (SqlConnection owningObject, SqlConnectionString connectionOptions, newPassword מחרוזת, redirectedUserInstance בוליאניים)  ב- System.Data.SqlClient.SqlInternalConnectionTds... ctor (זהות DbConnectionPoolIdentity, SqlConnectionString connectionOptions, providerInfo אובייקט, מחרוזת newPassword, SqlConnection owningObject, redirectedUserInstance בוליאניים)  ב- System.Data.SqlClient.SqlConnectionFactory.CreateConnection (אפשרויות DbConnectionOptions, poolGroupProviderInfo אובייקט, מאגר DbConnectionPool, DbConnection owningConnection)  ב- System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnection owningConnection, מאגר DbConnectionPool, אפשרויות DbConnectionOptions) ב- System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject) ב- System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject)  ב- System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject)  ב- System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection)  ב- System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory connectionFactory)  ב- System.Data.SqlClient.SqlConnection.Open() <-SqlConnection יחד עם פתח מורה לנו כי אנו מנסים לפתוח חיבור. לכן, הדבר אינו קשור שאילתה.

System.Data.SqlClient.SqlException: תם הזמן הקצוב. משך הזמן הקצוב חלף לפני השלמת הפעולה או שהשרת אינו מגיב.  ב- System.Data.SqlClient.SqlConnection.OnError (חריגה SqlException, breakConnection בוליאניים)  ב- System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj)  ב- System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, זרם הנתונים SqlDataReader, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)  ב- System.Data.SqlClient.SqlDataReader.ConsumeMetaData()  ב- System.Data.SqlClient.SqlDataReader.get_MetaData()  ב- System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, resetOptionsString מחרוזת) ב- System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, ReturnStream בוליאניים, async בוליאני)  ב- System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream בוליאניים, שיטת מחרוזת, התוצאה DbAsyncResult)  ב- System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream בוליאניים, שיטת מחרוזת)  ב- System.Data.SqlClient.SqlCommand.ExecuteScalar() <-SqlCommand משמש לעבודה עם שאילתה, לא חיבור. ExecuteScalar משמש למעשה לבצע שאילתה. תוכל גם לראות פריטים אחרים כמו ExecuteReader או ExecuteNonQuery לדוגמה.

שלבי פתרון:

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

סוג

פעולות שבאפשרותך לנסות

זמן קצוב לחיבור

  1. הגדל ConnectionTimout ביישום שלך.

  2. בדוק אם היציאה המשמשת את SQL חסום ברשת באמצעות כלי כמו Portqry.  בחר באפשרות "PortqryUI באמצעות הכלי עם SQL Server" בתחתית לקבלת הוראות אודות אופן השימוש בה.

זמן קצוב לפקודה

  1. הגדל את הערך CommandTimeout ביישום שלך ואת לכוונן גם את השאילתות המבוצעות תחילת בקצה העורפי.

לקבלת עצות והצעות נוסף בדוק: פתרון בעיות: תם הזמן הקצוב.

פעולה זו פתרה את הבעיה?

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

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

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

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלכם?

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

×