PDA

View Full Version : سوال: مشکل با updatepanel بعد از جند دقیقه



شرلوک هلمز
جمعه 17 مهر 1394, 22:25 عصر
من یک سایت دارم که در ان از masterpage و updatepanel استفاده کردم. مشکل من این است که updatepanel بعد از حدود 3 دقیقه که سایت فعالیتی ندارد دیگر کار نمی کند و customerror page که در web config درست کردم نمایش داده میشود. البته این مشکل در pc خانگی که سایت را تست میکنم وجود ندارد ولی وقتی سایت را در هاست قرار می دهم این مشکل بوجود می آید.
من در اینترنت جستجو کردم و تا حالا اینکار ها را انجام دادم که هیچکدام نتیجه نداشته است.
در web config
<httpRuntime targetFramework="4.5" executionTimeout="360000"/>
<sessionState timeout="200"></sessionState>

در master page

<asp:ScriptManager ID="ScriptManager1" runat="server" ValidateRequestMode="True"
AsyncPostBackTimeout="360000" >


در page_load

Server.ScriptTimeout=360000;

و از try و cache نیز در قسمتی که دستورات updatepanel اجرا می شود استفاده کردم . اما تا جایی که من متوجه شدم اصلا دستورات بعد از 3 دقیقه فراخوانی نمی شود تا مثلا قسمت cache اجرا شود. اما در pc دستورات cache اجرا می شود.
من صفحه ی error را از
<customErrors mode="On" defaultRedirect="error.aspx"></customErrors>
برداشتم و mode را برابر Off گذاشتم تا حداقل کد خطا نمایش داده شود اما در این حالت page هیج عکس العملی نشان نمی دهد انگار هیچ error ی وجود ندارد و البته updatepane نیز update نمی شود. در ضمن تمام حالت های مشابه را نیز تست کردم مثلا mode را برابر remotonly یا on قرار دادم اما بی نتیجه بود.
همچنین از
Sys.WebForms.PageRequestManager.getInstance().add_ beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_ endRequest(EndRequestHandler);
استفاده کردم که این مورد عمل میکند چون من یک alert در هردو function شروع و پایان قرار دادم و صفحه ی error را نیز برداشتم هردو function اجرا شد اما updatepanel کار نکرد. البته تمام این مشکلات فقط بعد از گذشت حدود 3 دقیقه از غیر فعال بود صفحه بوجود می اید و فقط هم برای updatepanel چون اگر مثلا وارد یک صفحه دیگر بشویم باز هم تا 3 دقیقه مشکلی نیست.
در سایت stackoverflow توضیح داده شده بود که ممکن است domain recycle یا session ها از دست می روند اما توضیح دیگر نداده بود.

اگر کسی راهی میدونه که حداقل بجای نمایش صفحه error همان page که کاربر در آن است reload بشه فعلا مشکل حل می شود چون همانطور که گفتم تا 3 دقیقه هیچ مشکلی وجود ندارد. اینکار احتمالا با دو دستور بالا که گفته م باید عملی باشد اما من نمی دانم که چطور متوجه بشم که updatepanel عمل کرده است یا نه که اگر عمل نشده بود مثلا در قسمت endRequest صفحه را refresh کنم.
البته واضح است که بهترین کار این است که مشکل حل شود اما من فعلا راهی پیدا نکردم به همین خاطر میگم حداقل بجای error صفحه، refresh بشود و گرنه اگر کسی راه درستی برای حل این مشکل دارد که بسیار ممنون خواهم شد.
ادرس سایت http://masoudpart.ir
با سپاس فراوان

شرلوک هلمز
سه شنبه 17 آذر 1394, 12:40 عصر
مشکل از idel time سرور بود بطور پیش فرض این زمان 20 دقیقه است اما ادمین های سرور انرا تغییر میدهند به 5 دقیقه تا سرور شلوغ نشود من از ادمین سرور خواستم که این زمان را همان 20 دقیقه کند سپس هر 18 دقیقه اگر کاربر فعالیتی نداشت صفحه را رفرش میکنم.

<meta http-equiv="refresh" content="1100" />
مقدار برحسب ثانیه است.