raravaice
پنج شنبه 22 فروردین 1387, 16:55 عصر
سلام
نکته جالب 1 :
دوستان کد زیر رو در نظر بگیرن.
Try
Response.Redirect("http://Ok.com")
Catch ex As Exception
Response.Redirect("http://Error.com")
End Try
منطق میگه این برنامه Error نداره و صفحه باید Redirect بشه به ok.com ولی ASP.NET تو این مورد چیزه دیگه ای رو میگه و اول Rediect میکنه به Ok.com بعد دوباره Redirect میکنه به Error.com .
نکته جالب 2 :
حالا ما میایم تو بلاک catch مقدار ex.message رو میریزیم تو فایل.
Try
Response.Redirect("http://Ok.com")
Catch ex As Exception
IO.File.AppendAllText("d:\ffffffffff.txt", ex.Message & " df vd'")
Response.Redirect("http://Error.com")
End Try
جالب اینکه : از بلاک Catch فقط دستور Response.redirect هست که اجرا میشه.
علت این مسئله:
شما وقتی Response.Redirect رو فراخونی میکنی Asp.net میاد براش یه Thread جدید در نظر میگیره که تمام اتفاقا اونجا میافته
"البته این چیزی که من تشخیص دادم شاید علت چیزه دیگه ای باشه! "
راه حل : ("که متاسفانه عاری از عیب هم نیست")Response.redirect در حالت پیش فرض با مقدار پارامتر True برای Response.End کار میکنه یعنی :
Response.Redirect("url.com",True)
و در صورت استفاده از این حالت این مشکل پیش میاد و برای انجام صحیح باید از :
Response.Redirect("url.com",False)
استفاده بشه. ولی اگر بعد از این دستور از Response.End استفاده بشه دوباره همون اتفاق میافته.
عین همین مشکلات برای Server.Transfer وجود داره که میتونید از Server.Execute استفاده کنید.
------------------------------------------------------------------------
دوستان اگر راه حل معقول تری پیدا کردن دریغ نکنن چون این روش خیلی درد سر سازه.
موفق باشید
نکته جالب 1 :
دوستان کد زیر رو در نظر بگیرن.
Try
Response.Redirect("http://Ok.com")
Catch ex As Exception
Response.Redirect("http://Error.com")
End Try
منطق میگه این برنامه Error نداره و صفحه باید Redirect بشه به ok.com ولی ASP.NET تو این مورد چیزه دیگه ای رو میگه و اول Rediect میکنه به Ok.com بعد دوباره Redirect میکنه به Error.com .
نکته جالب 2 :
حالا ما میایم تو بلاک catch مقدار ex.message رو میریزیم تو فایل.
Try
Response.Redirect("http://Ok.com")
Catch ex As Exception
IO.File.AppendAllText("d:\ffffffffff.txt", ex.Message & " df vd'")
Response.Redirect("http://Error.com")
End Try
جالب اینکه : از بلاک Catch فقط دستور Response.redirect هست که اجرا میشه.
علت این مسئله:
شما وقتی Response.Redirect رو فراخونی میکنی Asp.net میاد براش یه Thread جدید در نظر میگیره که تمام اتفاقا اونجا میافته
"البته این چیزی که من تشخیص دادم شاید علت چیزه دیگه ای باشه! "
راه حل : ("که متاسفانه عاری از عیب هم نیست")Response.redirect در حالت پیش فرض با مقدار پارامتر True برای Response.End کار میکنه یعنی :
Response.Redirect("url.com",True)
و در صورت استفاده از این حالت این مشکل پیش میاد و برای انجام صحیح باید از :
Response.Redirect("url.com",False)
استفاده بشه. ولی اگر بعد از این دستور از Response.End استفاده بشه دوباره همون اتفاق میافته.
عین همین مشکلات برای Server.Transfer وجود داره که میتونید از Server.Execute استفاده کنید.
------------------------------------------------------------------------
دوستان اگر راه حل معقول تری پیدا کردن دریغ نکنن چون این روش خیلی درد سر سازه.
موفق باشید