मेरी वेब साइट (प्रति दिन 20000-60000) पर मेरे कई उपयोगकर्ता हैं, जो मोबाइल फ़ाइलों के लिए एक डाउनलोड साइट है। मेरे पास अपने सर्वर (विंडोज़ सर्वर 2008-आर 2) का रिमोट एक्सेस है।
मुझे पहले "सर्वर अनुपलब्ध है" त्रुटियां मिली हैं, लेकिन अब मैं कनेक्शन टाइमआउट त्रुटि देख रहा हूं।
मैं इससे परिचित नहीं हूं - ऐसा क्यों होता है और मैं इसे कैसे ठीक कर सकता हूं?
नीचे पूर्ण त्रुटि है:
/ 'अनुप्रयोग में सर्वर त्रुटि मध्यांतर बीत गया। ऑपरेशन पूरा होने से पहले का समय समाप्त हो गया है या सर्वर जवाब नहीं दे रहा है। बयान समाप्त कर दिया गया है। विवरण: वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अनियंत्रित अपवाद हुआ। कृपया त्रुटि के बारे में अधिक जानकारी के लिए स्टैक ट्रेस की समीक्षा करें और यह कोड में कहां उत्पन्न हुआ।
अपवाद विवरण: System.Data.SqlClient.SqlException: समय समाप्त हो गया। ऑपरेशन पूरा होने से पहले का समय समाप्त हो गया है या सर्वर जवाब नहीं दे रहा है। बयान समाप्त कर दिया गया है।
स्रोत त्रुटि:
वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अखंड अपवाद उत्पन्न हुआ था। नीचे दिए गए अपवाद स्टैक ट्रेस का उपयोग करके अपवाद की उत्पत्ति और स्थान के बारे में जानकारी की पहचान की जा सकती है।
स्टैक ट्रेस:
[SqlException (0x80131904): समय समाप्त हो गया। ऑपरेशन पूरा होने से पहले का समय समाप्त हो गया है या सर्वर जवाब नहीं दे रहा है। बयान को समाप्त कर दिया गया है।]
System.Data.SqlClient.SqlConnection.OnError (SqlException अपवाद, बूलियन ब्रेककेंक्शन) +404
System.Data.SqlClient.TdsPserser.ThrowExceptionAndWarning () +412
System.Data.SqlClient.TdsPserser.tdsPserser। , SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet बल्क चॉपीहैंडलर, TdsParserStateObject
StateObj।
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, बूलियन returnStream, बूलियन async) 6,389,442
System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, बूलियन returnStream, स्ट्रिंग विधि, DbAsyncResult परिणाम) + 538
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult परिणाम, स्ट्रिंग मेथडनाम, बूलियन SendToPipe) +689
System.Data.SllClient.SqlCommand.ExecuteNonQuery () +327
NovinMedia.DadD.DD.DD.D.D. , Int32 और पंक्तियाँ) +209
DataLayer.OnlineUsers.Update_SessionEnd_And_Online (ऑब्जेक्ट सत्र_और, ऑनलाइन बूलियन) +440
NiceFileExplorer.Global.Application_Start (ऑब्जेक्ट प्रेषक, EventArgs e) +163[HttpException (0x80004005): समय समाप्त हो गया। ऑपरेशन पूरा होने से पहले का समय समाप्त हो गया है या सर्वर जवाब नहीं दे रहा है। बयान समाप्त कर दिया गया।]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext संदर्भ, HttpApplication एप्लिकेशन) 4,052,053
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext संदर्भ, MethodInfo [] हैंडलर) 191
System.Web.HttpApplication। InitSpecial (HttpApplicationState राज्य, MethodInfo [] संचालकों, IntPtr appContext, HttpContext संदर्भ) +352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext संदर्भ) 407
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +375[HttpException (0x80004005): समय समाप्त हो गया। ऑपरेशन पूरा होने से पहले का समय समाप्त हो गया है या सर्वर जवाब नहीं दे रहा है। बयान समाप्त कर दिया गया।]
System.Web.HttpRuntime.FirstRequestInit (HttpContext संदर्भ) 11,686,928 System.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext संदर्भ) 141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext संदर्भ) 4,863,749
जवाब के बाद संपादित:
मेरी Application_Start
में Global.asax
नीचे की तरह है:
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUsers"] = 0;
OnlineUsers.Update_SessionEnd_And_Online(
DateTime.Now,
false);
AddTask("DoStuff", 10);
}
संग्रहीत प्रक्रिया कहा जा रहा है:
ALTER Procedure [dbo].[sp_OnlineUsers_Update_SessionEnd_And_Online]
@Session_End datetime,
@Online bit
As
Begin
Update OnlineUsers
SET
[Session_End] = @Session_End,
[Online] = @Online
End
मेरे पास ऑनलाइन उपयोगकर्ता प्राप्त करने की दो विधियाँ हैं:
- का उपयोग करते हुए
Application["OnlineUsers"] = 0;
- डेटाबेस का उपयोग कर एक अन्य
इसलिए, विधि # 2 के लिए मैं सभी OnlineUsers को रीसेट कर देता हूं Application_Start
। उस तालिका में 482,751 से अधिक रिकॉर्ड हैं।