এই কেবি আর্টিকেলটিতে বলা হয়েছে যে Response.End()এএসপি.এনইটি একটি থ্রেড বাতিল করে।
প্রতিফলক দেখায় যে এটি এর মতো দেখাচ্ছে:
public void End()
{
if (this._context.IsInCancellablePeriod)
{
InternalSecurityPermissions.ControlThread.Assert();
Thread.CurrentThread.Abort(new HttpApplication.CancelModuleException(false));
}
else if (!this._flushing)
{
this.Flush();
this._ended = true;
if (this._context.ApplicationInstance != null)
{
this._context.ApplicationInstance.CompleteRequest();
}
}
}
এটি আমার কাছে বেশ কঠোর মনে হচ্ছে। যেমন কেবি নিবন্ধটি বলেছে, নিম্নলিখিত অ্যাপ্লিকেশনটিতে যে কোনও কোড Response.End()কার্যকর করা হবে না এবং এটি অন্তত বিস্ময়ের নীতি লঙ্ঘন করে। এটি প্রায় Application.Exit()কোনও উইনফোর্স অ্যাপ্লিকেশনটির মতো। থ্রেড অ্যাওর্ট ব্যতিক্রমের কারণে Response.End()ছড়িয়ে পড়ার মতো নয়, সুতরাং কোডটিকে ঘিরে একটি try... finallyসন্তুষ্ট হবে না।
আমার সবসময় এড়ানো উচিত কিনা তা আমাকে অবাক করে দেয় Response.End()।
কেউ কি পরামর্শ দিতে পারেন Response.End(), আমার কখন ব্যবহার করা উচিত , কখন Response.Close()এবং কখন HttpContext.Current.ApplicationInstance.CompleteRequest()?
রেফ: রিক স্ট্রালের ব্লগ এন্ট্রি ।
আমি যে ইনপুট পেয়েছি তার উপর ভিত্তি করে, আমার উত্তর হ্যাঁ, Response.Endক্ষতিকারক , তবে এটি কিছু সীমিত ক্ষেত্রে কার্যকর।
Response.End()অবিলম্বেHttpResponseব্যতিক্রমী অবস্থার অবসান ঘটাতে, অপছন্দযোগ্য ছোঁড়া হিসাবে ব্যবহার করুন । ডিবাগিংয়ের সময়ও কার্যকর হতে পারে। রুটিন প্রতিক্রিয়াগুলি সম্পূর্ণ করতে এড়িয়ে চলুনResponse.End()।Response.Close()অবিলম্বে ক্লায়েন্টের সাথে সংযোগ বন্ধ করতে ব্যবহার করুন। প্রতি এই দুটিই MSDN ব্লগ পোস্টে , এই পদ্ধতি স্বাভাবিক HTTP অনুরোধ প্রক্রিয়াকরণের জন্য উদ্দেশ্যে নয়। আপনার পক্ষে এই পদ্ধতিটি কল করার পক্ষে যুক্তিসঙ্গত কারণ এটি অত্যন্ত অসম্ভব।CompleteRequest()একটি সাধারণ অনুরোধ শেষ করতে ব্যবহার করুন । বর্তমান ইভেন্টটি সম্পূর্ণ হওয়ার পরে,CompleteRequestএএসপি.এনইটি পাইপলাইনটিকেEndRequestইভেন্টে এগিয়ে যেতে সহায়তা করেHttpApplication। আপনি যদি কল করেনCompleteRequest, তবে প্রতিক্রিয়াটির জন্য আরও কিছু লিখুন, ক্লায়েন্টকে লেখাটি পাঠানো হবে।
সম্পাদনা করুন - 13 এপ্রিল 2011
আরও স্পষ্টতা এখানে পাওয়া যায়:
- এমএসডিএন ব্লগে দরকারী পোস্ট
- জোন রেডের দরকারী বিশ্লেষণ
Response.Redirectএবং Server.Transferউভয় কল Response.Endএবং এড়ানো উচিত।
Response.EndThreadAbortExceptionঠিক জরিমানা করছি catch