Saya memiliki banyak pengguna di situs web saya (20000-60000 per hari), yang merupakan situs pengunduhan untuk file seluler. Saya memiliki akses jarak jauh ke server saya (windows server 2008-R2).
Saya telah menerima kesalahan "Server tidak tersedia" sebelumnya, tetapi sekarang saya melihat kesalahan batas waktu koneksi.
Saya tidak terbiasa dengan ini - mengapa itu terjadi dan bagaimana saya bisa memperbaikinya?
Kesalahan lengkapnya adalah di bawah ini:
Kesalahan Server dalam Aplikasi '/'. Batas waktu kedaluwarsa. Periode waktu habis berlalu sebelum penyelesaian operasi atau server tidak merespons. Pernyataan itu telah dihentikan. Deskripsi: Pengecualian yang tidak ditangani terjadi selama eksekusi permintaan web saat ini. Harap tinjau jejak tumpukan untuk informasi lebih lanjut tentang kesalahan dan dari mana asalnya dalam kode.
Detail Pengecualian: System.Data.SqlClient.SqlException: Timeout kedaluwarsa. Periode waktu habis berlalu sebelum penyelesaian operasi atau server tidak merespons. Pernyataan itu telah dihentikan.
Kesalahan Sumber:
Pengecualian yang tidak tertangani dihasilkan selama eksekusi permintaan web saat ini. Informasi mengenai asal dan lokasi pengecualian dapat diidentifikasi menggunakan jejak tumpukan pengecualian di bawah ini.
Jejak Tumpukan:
[SqlException (0x80131904): Waktu tunggu habis. Periode waktu habis berlalu sebelum penyelesaian operasi atau server tidak merespons. Pernyataan tersebut telah diakhiri.]
System.Data.SqlClient.SqlConnection.OnError (SqlException pengecualian, Boolean breakConnection) +404
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning () +412
System.Data.SqlCliver.Berikutnya. , SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1363
System.Data.SqlClient.SqlCommand.FinishExecuteReaderAtara, apakah akan berjalan lebih baik jika dijalankan dengan senda
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +6389442
System.Data.SqlClient.SqlCommand.Tingkah laku saat menjalankan sebuah perilaku, jika tidak, perilaku ini akan berjalan dengan perilaku yang lebih baik, jika tidak, perilaku, perilaku, perilaku, perilaku, atau perilaku. 538
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncHasil hasil, String methodName, Boolean sendToPipe) +689
System.Data.SqlClient.SqlCommand.ExecuteNonQuery () +327
NovinMake String data) , Int32 & rowsAffected) +209
DataLayer.OnlineUsers.Update_SessionEnd_And_Online (Obyek Session_End, Boolean Online) +440
NiceFileExplorer.Global.Application_Start (Pengirim objek, EventArgs e) +163[HttpException (0x80004005): Waktu tunggu habis. Periode waktu habis berlalu sebelum penyelesaian operasi atau server tidak merespons. Pernyataan tersebut telah dihentikan.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext konteks, aplikasi HttpApplication) +4052053
System.Web.HttpApplication.RegisterEventSubscriptionWithIIS (IntPtr apppertextttttttttttttttttpttpttpttppp.pdf)
. InitSpecial (status HttpApplicationState, MethodInfo [], IntPtr appContext, konteks HttpContext) +352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, konteks HttpContext konteks) +407Peningkatan
ProyekPertama.Terkuat dengan ProyekPertambahan.[HttpException (0x80004005): Waktu tunggu habis. Periode waktu habis berlalu sebelum penyelesaian operasi atau server tidak merespons. Pernyataan tersebut telah diakhiri.]
System.Web.HttpRuntime.FirstRequestInit (HttpContextext) +11686928 System.Web.HttpRuntime.PastikanFirstRequestInit (HttpContext konteks) +141 System.Web.HttpRuntime.Teks teks KonteksAku
EDIT SETELAH JAWABAN:
saya Application_Start
di Global.asax
adalah seperti di bawah ini:
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUsers"] = 0;
OnlineUsers.Update_SessionEnd_And_Online(
DateTime.Now,
false);
AddTask("DoStuff", 10);
}
Prosedur tersimpan yang dipanggil adalah:
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
Saya memiliki dua metode untuk mendapatkan pengguna online:
- menggunakan
Application["OnlineUsers"] = 0;
- yang lain menggunakan basis data
Jadi, untuk metode # 2 saya mengatur ulang semua Pengguna Online di Application_Start
. Ada lebih dari 482.751 catatan dalam tabel itu.