PDA

View Full Version : سوال: جلوگیری ازافزایش تعداد کانکشن های باز سرور



rezaei manesh
پنج شنبه 15 مرداد 1388, 08:32 صبح
سلام دوستان
من یک سایت رو بازسازی کردم که بیس اولیه سایت رو یکی دیگه نوشته
حالا که سایت رو آپلود کردم بعد از چند ساعت و گاهی یک روز سایت دیگه باز نمی شه و پیام time out میده...
بعد از کلی سرو کله زدن با بخش های مختلف سایت و به کمک یکی از دوستان فهمیدم که مشکل احتمالا از تعداد کانکشن های بازی هست که بسته نمی شوند. اما من در کد هایی که من به این قسمت اضافه کردم کانکشن ها رو می بندم که روال کار رو می گم :
من داخل کلاس یک متغیر دارم که کانکشن رو از وب کانفیگ میگیره و هر تابع که می خواد با سرور ارتباط برقرار کنه از اون کانکشن استفاده می کنه و open می شه و آخر کار بسته می شه و لی اگر تابع دیتا ریدر برگردونه کانکشن رو نمی بندم .حال از روی صفحاتم این کلاس رو درون هر تابع باز می کنم (new) بعد کارام رو انجام می دم و در finally یک تابع از این کلاس رو فراخوانی می کنم که در ان اگه کانکشن باز هست بسته می شه و اگه nothing را هم به پیشنهاد دوستم به اون متغیر می دم و کلاس رو هم فانالایز می کنم.
آیا این روش درست هست ؟یا نه (من از این روش تو 6-7 تا سایت دارم استفاده می کنم اما اونجا کانکشن استرینگم داخل یک کلاس ایجاد می شه نه وب کامفیگ)
و اما اون قسمتی از سایت که قبلا نوشته شده بود
در اون قسمت ها از دیتاست ویزاردی استفاده شده و هر جدول که قرار خونده بشه یا نوشته بشه درون یک دیتا ست است و اعمال توسط یکسری از کلاس ها درون اون نوشته می شند برای اون نمی دونم چه جوری و کجا باید کانکشن رو ببندم آیا خودش بسته می شه ؟
آیا اصلا درسته که از دیتا ست استفاده بشه یا اون دوستمون اشتباه کرده؟

L_eskandary
پنج شنبه 15 مرداد 1388, 09:44 صبح
سلام دوست عزیز
حتما شما باید از webconfig برا اینکار استفاده کنین ؟
خوب من از معماری سه لایه استفاده می کنم و تو این روش برا ارتباط با سرور از متد Facade استفاده می کنم که این طوری فقط یک بار کانکشن باز میشه و بعد از آن هر کسی می خواد کانکت شه می رم و بررسی می کنم اگه کانکشنم همچنان باز باشه دیگه کانکشن رو باز نمی کنم و از همون کانکشن استفاده میشه . این طوری دیگه مشکل باز و بسته کردن بیش از حد کانکشن رو هم ندارم ، فک می کنم راه حل منطقی هستش .

farnooshhp
پنج شنبه 15 مرداد 1388, 09:50 صبح
سایتتون رو رو شبکه محلی آپلود کردید یا اینترنت؟ اگر شبکه محلی هست شاید این راه حل مشکلتون رو حل کنه :
1)فایل مدیریت iis رو باز کنید
2)روی Default Web Site راست کلیک کرده Properties رو بزنید
3)در پنجره ای که باز میشه جلوی Connection TimeOut یک عدد بزرگ مثلا 1000 وارد کنید
4)تیک HTTP Keep-Alives Enaled رو بزنید تا فعال شود
5)ok رو زده پنجره رو ببندید

اگر در کلاینت ها خطایی مثل ترافیک شبکه یا کانکشن رو داد با این کار مشکل برطرف میشه

rezaei manesh
پنج شنبه 15 مرداد 1388, 10:06 صبح
تو اینترنت هستش
http://www.markazeketab.com
یه چورایی مجبورم که از وب کانفیگ استفاده کنم