PDA

View Full Version : سوال: رم Application Pool



یاسر مددیان
شنبه 18 مهر 1388, 07:27 صبح
سلام
تو هاستینگ ها به هرکدوم از دومین ها یا به چند دومین یه مقدار از حافظه رو به Application Pool تخصیص میدن.
من با این هاستینگی کار می کنم یه مشکل دارم و این اونکه هر چند وقت در میون یکی از سایت هام بالا نمیاد باهاشون که تماس میگیرم میگن رم Application Pool سایتم پر شده بود خالیش کردن درست شد. گفتم مشکل از چیه میگه تو کدهاتون یه چیزایی هست که رم رو پر میکنه. سایت هایی که حتی شاید روزی 2 تا 3 بازدید کننده هم نداشته باشه هم همین مشکل رو دارن.
می خوام بدونم چه چیزایی تو کد باعث اشغال شدن رم Application Pool میشه؟ اگه کسی تا حالا با این مشکل برخورد کرده یا اطلاعاتی در این مورد داره کمک کنه ممنون میشم.

یاسر مددیان
شنبه 18 مهر 1388, 13:59 عصر
کسی نیست به ما کمک کنه؟

Saber_Fatholahi
شنبه 18 مهر 1388, 16:12 عصر
دوست من چک کن احتمالا یه جایی حلقه بی نهایت داری
یا اینکه کاری میکنی برنامه ات خطای منطقی داره
یه دور کدهاتو چک کن
موفق باشی

ISFAHAN
شنبه 18 مهر 1388, 20:50 عصر
سلام دوست عزیز مشکل شما اینه که آبجکت هات رو وقتی ایجاد می کنی از بین نمی بری و انها فضا می گیرند و باعث می شوند که شما این مشکل را داشته باشی ... IDispose ها و dispose کردن اشیا و یا حتی null کردن اونها بعد از استفاده می تونه مفید باشه ... البته dispose اصل کاریه ...

یاسر مددیان
یک شنبه 19 مهر 1388, 07:07 صبح
ممنون از دوستان.


دوست من چک کن احتمالا یه جایی حلقه بی نهایت داری
یا اینکه کاری میکنی برنامه ات خطای منطقی داره
یه دور کدهاتو چک کن
موفق باشی

کل کدهام و چک کردم اصلاً حلقه بینهایت یا خطای منطقی ندارم.



آبجکت هات رو وقتی ایجاد می کنی از بین نمی بری و انها فضا می گیرند و باعث می شوند که شما این مشکل را داشته باشی

من تمامی آبجکت هایی که ایجاد می کنم وقتی کارم با اونها تمام شد آزادشون می کنم. هیچ آبجکتی نیست که تو کدهام استفاده بشه اما آزاد سازی نشه.


با این شرایط باز هم فکر میکنید چه چیزهایی باعث این مشکل میشن؟ آیا ممکن مشکل از هاستینگ باشه؟ من با شرکت PersianTools کار می کنم. آیا شما تا به حال کار کردین باهاش؟ البته من 2 تا 3 سال باهاش کار میکنم. خیلی هم راضی هستم. اما این مشکل رونمی دونم چجوری حلش کنم.

یاسر مددیان
یک شنبه 19 مهر 1388, 08:44 صبح
آقا بهروز التماس دعا داریما. دستمون و بگیر.

ISFAHAN
یک شنبه 19 مهر 1388, 09:46 صبح
عزیز شما تمام کلاس ها رو هم باید dispose کنید ... اگر این کار رو نکردید حتما انجام بدین .

یاسر مددیان
یک شنبه 19 مهر 1388, 09:52 صبح
این کارم انجام دادم ولی این مشکل هر چند وقت درمیون پیش میاد که با ریست کردن رم دوباره درست میشه.

یاسر مددیان
یک شنبه 19 مهر 1388, 10:01 صبح
اینم یه نمونه کوچیک از کدهام :




ConnectionStringSettingsCollection connections = ConfigurationManager.ConnectionStrings;
string connectionstring = connections["Connectionstring"].ConnectionString;
SqlConnection CONLoad;
SqlCommand CMDLoad;
string STRLoad;
STRLoad = "SELECT * FROM mayor";
CONLoad = newSqlConnection();
CONLoad.ConnectionString = connectionstring;
CMDLoad = newSqlCommand();
CMDLoad.Connection = CONLoad;
CMDLoad.CommandTimeout = 60;
CMDLoad.CommandType = CommandType.Text;
CMDLoad.CommandText = STRLoad;
if (CONLoad.State != ConnectionState.Open)
CONLoad.Open();
{
try
{
dgmayor.DataSource = CMDLoad.ExecuteReader();
dgmayor.DataBind();
}
catch
{
lblerror.Text = " .";
}
}
if (CMDLoad != null)
{
CMDLoad.Dispose();
CMDLoad = null;
}
if (CONLoad != null)
{
if (CONLoad.State != System.Data.ConnectionState.Closed)
CONLoad.Close();
CONLoad.Dispose();
CONLoad = null;
}

anubis_ir
یک شنبه 19 مهر 1388, 12:44 عصر
سلام
كلا كدت رو بر اساس استفاده از using بازنويسي كن. به اين صورت نيازي به ذكر close و dispose‌ نيست و كامپايلر خودش براي شما اين مورد رو در حين كامپايل ايجاد خواهد كرد.
براي مثال در كد شما در سطر CONLoad.Open اگر خطايي رخ دهد به بستن كانكشن نمي‌رسيد و همين‌ها مشكل درست مي‌كنه. از using استفاده كنيد تا خودش try و finally را حين كامپايل به صورت خودكار اضافه كند و اشياء را هم حتما dispose كند.

یاسر مددیان
یک شنبه 19 مهر 1388, 15:24 عصر
احتمال داره مشکل از هاستینگ باشه از کد نباشه؟
اصولاً چیزایی که باعث پر شدن رم میشن چیان؟

anubis_ir
یک شنبه 19 مهر 1388, 20:03 عصر
حمله dos اين روزها شايع است ...

یاسر مددیان
دوشنبه 20 مهر 1388, 11:12 صبح
تا اونجایی تونستم سعی کردم کنترل کنم. فکر نمی کنم از این باشه.

kiosksoft
یک شنبه 26 مهر 1388, 16:09 عصر
این خطا ربطی به برنامه و کدنویسی نداره , مشکل از هاست هست متاسفانه ضعف هاست ها به حدی هست که حتی مشکلات داخلی سرور ها را نمتوانند حل کنند. هر کی پول داره رفته یه هاستینک راه اندازی کرده یا داره خدمات یک شرکت دیگر رو ارائه میده! حتی بلد نیستند سرور رو درست تنظیم کنند که مشتری براحتی از امکانات هاستینگ استفاده کنه.
تنها چیزی که بلد هستند اینه که بپیچونن!

مهدی کرامتی
یک شنبه 26 مهر 1388, 19:51 عصر
به نظر من هم این مشکل از خود هاست شماست.

دات نت یک مکانیسم مدیریت حافظه بنام Garbage Collection داره که بصورت خودکار Object ها و حافظه بلااستفاده رو پاک و آزاده میکنه. بنابراین دلیلی برای پر شدن Application Pool شما وجود نداره.

یاسر مددیان
دوشنبه 27 مهر 1388, 08:17 صبح
منم فکر می کردم از هاستینگ باشه.
شما چه هاستینگی رو پیشنهاد میکنید که خدمات ، پشتیبانی و سرعت خوبی داشته باشه؟

p.alizadeh
چهارشنبه 05 تیر 1392, 16:52 عصر
سلام دوستان خسته نباشید
منم یه همچین مشکلی داشتم با پشتیبانم که تماس گرفتم گفت مشکل از کد
هرچی نگا میکنم نمی دونم از کجاست
آقای کرامتی درست میگن خود دات نت باید ابجکت ها و کلیه حافظه رو ازاد کنه پس دلیلی برای این ارور نداره