PDA

View Full Version : کارباglobal.asx



h.alizadeh
سه شنبه 06 شهریور 1386, 07:07 صبح
سلام
من تازه شروع به یادگیری Asp.netکردم .
یه سؤال دارم:
فایلglobal.asaxبر رو ی برنامه هام اعمال نمیشه
البته کدهام درسته و من فقط یک دونه فایل global.asax در پوشه م دارم اما باز هم اعمال نمیشه البته خطام نمیده

بطور مثال برنامه زیر:
سورس global.asax من:
<Script Runat="Server">
Sub Session_Start()
If Application( "SessionCount" ) Is Nothing Then
Application( "SessionCount" ) = 0
End If
Application( "SessionCount" ) += 1
End Sub
Sub Session_End()
Application( "SessionCount" ) -= 1
End Sub
</Script>


سورس برنامه ای که میخواد از global.asax استفاده کنه و در همون پوشه ای که فایلglobal.asx هست قرار داره:
<Script Runat="Server">
Sub Page_Load
lblSessionCount.Text = Application( "SessionCount" )
End Sub
</Script>
<html>
<head><title>SessionCount.aspx</title></head>
<body>
Current Sessions:
<asp:Label
ID="lblSessionCount"
Runat="Server" />
</body>
</html>

لطفاً راهنمایی م کنید چکار کنم؟؟تا از فایل gobal.asax استفاده کنم.

ممنون

h.alizadeh
سه شنبه 06 شهریور 1386, 07:11 صبح
خروجی فایل دوم به اینصورت هست
Current Sessions:
جلوش هم خالیه!!
من هرچقدر صفحه ش رو رفرش کنم بازم فرقی نمی کنه!
درحالیکه باید با هر رفرشی متغیرapplication ام یه دونه زیاد بشه!
البته اگه همین کدها رو بدون فایلasax بنویسم جواب میده

h.alizadeh
سه شنبه 06 شهریور 1386, 23:06 عصر
ببخشید اما آیا تا حالا این مشکل برای کسی دیگه هم پیش اومده یا نه؟
خواهشاً راهنمایی ام کنید.

تشکر

nazaninam
سه شنبه 06 شهریور 1386, 23:25 عصر
رویداد SessionStart زمانی رخ می دهد که یک کاربر یکی از صفحات پروژه را اجرا کند ! دقت کنید به ازای هر کاربر !!! نه به ازای هر Refresh ....
شما صفحه مرورگر را ببندید و دوباره باز کنید ! متوجه میشید که فایل Global شما مشکلی ندارد

Aidin
چهارشنبه 07 شهریور 1386, 03:21 صبح
اگه میخواهید با هر بار Refresh به شمارنده یکی اضافه بشه باید از رویداد Application_BeginRequest استفاده کنید
رویداد Sesion_Start هر وقت که یک کاربر جدید (میتونید یه IE دیگه باز کنید) سایت رو باز کنه فراخوانی میشه
در ضمن اگه کدهاتون رو در تگ کد قرار بدین خیلی بهتره.

h.alizadeh
پنج شنبه 08 شهریور 1386, 15:53 عصر
ممنون از لطفتون مشکلم رفع شد.

راستش من یک پوشه از سی دی همراه کتاب کپی کردم توی یکی از درایوهام
این پوشه( اسمش source هست) شامل 14پوشه ی دیگه هم هست ینی 14فصل کتاب هرکدوم یک دونه پوشه ی جداگانه داره.
بعد من پوشه ی sourceرو دایرکتوری مجازی کردم در iis
اما فایل های global.asax ام د رهیچکدام از پوشه هام اعمال نمیشه بدون اینکه ایرادی داشته باشن!!!

اما الان من متوجه شدم که اگه هر کدوم از فصلها رو جداگانه دایرکتوری مجازی کنم فایلglobal.asax ام اعمال میشه!!
جالب اینه که مثلا من دایرکتوری فصل 11 رو دایرکتور ی مجازی می کنم و همین دایرکتوری داخلش 5تا دایرکتوری داره و تو ی هرکدوم از این دایرکتوری ها هم یک دونه Global.asaxمتفاوت هست اما با این حال همشون کار می کنه!!
می گم پس چرا وقتی پوشه ی Sourceرو یک جا دایرکتور ی مجازی میکنم فایل global.asax اعمال نمیشه؟؟!!

--------
nazaninam عزیز به درست م یگید اما برای من قبل از این همون یک رو هم نشون نمی داد اما الان که مشکل رفع شد یک رو نشون میده.

niravana اون Application_BeginRequestهم نشد ینی بهش یک دونه اضافه نکرد!ثابت یک نشون میده
درمورد تگ کد هم خیلی ممنون اصلاً نمی دونستم