আইআইএস-এ দীর্ঘকালীন কাজ চালাতে আমি থ্রেড ব্যবহার করতে পারি?


85

একটি এএসপি.নেট অ্যাপ্লিকেশনটিতে, ব্যবহারকারী ওয়েবপৃষ্ঠায় একটি বোতাম ক্লিক করে এবং এটি ইভেন্ট হ্যান্ডলারের মাধ্যমে সার্ভারে কোনও বস্তু ইনস্ট্যান্ট করে এবং বস্তুর একটি পদ্ধতি কল করে। স্টাফ করার জন্য পদ্ধতিটি একটি বাহ্যিক সিস্টেমে চলে যায় এবং এতে কিছুটা সময় লাগতে পারে। সুতরাং, আমি যা করতে চাই তা অন্য পদ্ধতিতে সেই পদ্ধতি কলটি চালানো হয় যাতে আমি "আপনার অনুরোধ জমা দেওয়া হয়েছে" দিয়ে ব্যবহারকারীর কাছে নিয়ন্ত্রণ ফিরিয়ে আনতে পারি। আমি অগ্নি-বিস্মৃত হিসাবে এটি করতে যুক্তিসঙ্গতভাবে খুশি, যদিও ব্যবহারকারী যদি স্থিতির জন্য বিষয়টিকে পোলিং করে রাখতে পারেন তবে এটি আরও সুন্দর হবে।

আমি যা জানি না তা হ'ল আইআইএস যদি আমার থ্রেডটি চালিয়ে যেতে দেয়, এমনকি ব্যবহারকারী সেশনটির মেয়াদ শেষ হয়ে যায়। কল্পনা করুন, ব্যবহারকারী ইভেন্টটি চালিয়ে যায় এবং আমরা সার্ভারে অবজেক্টটি ইনস্ট্যান্ট করি এবং একটি নতুন থ্রেডে পদ্ধতিটি ফায়ার করি। ব্যবহারকারী "আপনার অনুরোধ জমা দেওয়া হয়েছে" বার্তাটি দিয়ে খুশি এবং তার ব্রাউজারটি বন্ধ করে দেয়। অবশেষে, এই ব্যবহারকারীদের সেশনটি আইআইএস-এর সময় শেষ হবে, তবে থ্রেডটি এখনও চলছে, কাজ করছে। আইআইএস থ্রেডটি চলমান রাখতে দেবে নাকি এটি মেরে ফেলবে এবং ব্যবহারকারীর সেশন শেষ হওয়ার পরে অবজেক্টটি নিষ্পত্তি করবে?

সম্পাদনা: উত্তর এবং মন্তব্যগুলি থেকে, আমি বুঝতে পারি যে এটি করার সর্বোত্তম উপায় হ'ল দীর্ঘকালীন প্রসেসিং IIS এর বাইরে সরিয়ে নেওয়া। অন্য সব কিছু বাদে, এটি অ্যাপডোমাইন পুনর্ব্যবহারযোগ্য সমস্যা নিয়ে কাজ করে। অনুশীলনে, আমাকে সীমিত সময়ে গ্রাউন্ডের বাইরে সংস্করণ 1 পাওয়া উচিত এবং বিদ্যমান কাঠামোর ভিতরে কাজ করতে হবে, তাই সার্ভিস স্তরটি এড়াতে চাই, তাই আইআইএসের অভ্যন্তরে কেবল থ্রেড বন্ধ করে দেওয়ার ইচ্ছা the অনুশীলনে, এখানে "দীর্ঘকালীন চলমান" কেবল কয়েক মিনিটের মধ্যে থাকবে এবং ওয়েবসাইটে সংবিধান কম হবে তাই এটি ঠিক হওয়া উচিত। তবে, পরবর্তী সংস্করণ অবশ্যই একটি পৃথক পরিষেবা স্তর মধ্যে বিভক্ত করা প্রয়োজন।


4
কী কী প্রক্রিয়াজাত করা দরকার এবং আপনার হোস্টিংয়ের পরিবেশ সম্পর্কে আপনার আরও কোনও বিবরণ রয়েছে? উদাহরণস্বরূপ, আপনি একটি পরিষেবা ইনস্টল করতে সক্ষম?
সেনফো

আপনি সবসময় অ্যাসিঙ্ক এবং ওয়েট প্রোগ্রামিং পদ্ধতিগুলি ব্যবহার করতে পারেন (ভিজ্যুয়াল স্টুডিও 2012+)। নিজেকে থ্রেড পরিচালনার চেয়ে অনেক পরিষ্কার er
সসেজফিনজারগুলি

উত্তর:


65

আপনি যা চান তা সম্পাদন করতে পারেন তবে এটি সাধারণত একটি খারাপ ধারণা। বেশ কয়েকটি এএসপি.এনইটি ব্লগ এবং সিএমএস ইঞ্জিন এই পন্থা গ্রহণ করে, কারণ তারা একটি ভাগ করা হোস্টিং সিস্টেমে ইনস্টলযোগ্য হতে চায় এবং উইন্ডোজ পরিষেবাতে নির্ভরতা নিতে পারে না যা ইনস্টল করা দরকার। সাধারণত অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে তারা Global.asax এ দীর্ঘ চলমান থ্রেডটি কিক করে দেয় এবং থ্রেড প্রক্রিয়াটিতে কাজগুলি সারিবদ্ধ করে রাখে।

অনুরোধগুলি প্রক্রিয়া করার জন্য আইআইএস / এএসপি.এনইটের কাছে উপলব্ধ সংস্থানগুলি হ্রাস করার পাশাপাশি অ্যাপডোমেন পুনর্ব্যবহারের সময় থ্রেডটি মেরে ফেলাতেও আপনার সমস্যা রয়েছে এবং তারপরে বিমানটি চলাকালীন আপনাকে অধ্যবসায়ের সাথে কাজ করতে হবে, যেমন পাশাপাশি অ্যাপডোমেন ফিরে আসার সাথে সাথে কাজটি শুরু করে।

মনে রাখবেন যে অনেক ক্ষেত্রে অ্যাপডোমাইন একটি ডিফল্ট বিরতিতে স্বয়ংক্রিয়ভাবে পুনর্ব্যবহার করা হয়, পাশাপাশি আপনি যদি ওয়েবকনফিগ ইত্যাদি আপডেট করেন if

যদি আপনি যে কোনও সময় আপনার থ্রেডটি নিহত হওয়ার দৃistence়তা এবং লেনদেনের দিকগুলি পরিচালনা করতে পারেন, তবে আপনি কিছুটা বিরতিতে আপনার সাইটে অনুরোধ তৈরি করে এমন কিছু বাহ্যিক প্রক্রিয়া করে অ্যাপডোমেন পুনর্ব্যবহার করতে পারেন - যাতে যদি সাইটটি আপনাকে পুনর্ব্যবহার করা হয় এটি এক্স মিনিটের মধ্যে স্বয়ংক্রিয়ভাবে আবার ব্যাক আপ শুরু করার গ্যারান্টিযুক্ত।

আবার, এটি সাধারণত একটি খারাপ ধারণা।

সম্পাদনা: কার্যত এই কৌশলটির কয়েকটি উদাহরণ এখানে রয়েছে:

সম্প্রদায় সার্ভার: উইন্ডোজ পরিষেবাদি বনাম ব্যাকগ্রাউন্ড থ্রেড নির্ধারিত ব্যবধানগুলিতে কোড চালানোর জন্য ওয়েবসাইটের প্রথম শুরু হওয়ার পরে একটি পটভূমি থ্রেড তৈরি করা

সম্পাদনা (সুদূর ভবিষ্যতে থেকে) - এই দিনগুলিতে আমি হ্যাংফায়ার ব্যবহার করব


4
ধন্যবাদ, এটি অন্তর্দৃষ্টিপূর্ণ। পুনর্ব্যবহারযোগ্য একটি নির্দিষ্ট হত্যাকারী এবং আপনি যা বলছেন তা থেকে আমি গ্রহণ করি যে আমি এটি কঠোর এবং দ্রুত জিনিস হিসাবে করতে পারি তবে এটি বিপদজনক।
ফ্রান্স

হ্যাঁ, এখানে চেক করুন: professionalaspnet.com/archive/2007/09/02/... এবং এখানে কীভাবে কমিউনিটি সার্ভার একই জিনিস পরিচালনা একটি থ্রেড হল: dev.communityserver.com/forums/t/459942.aspx
ব্রায়ান Batchelder

আমার ক্ষেত্রে, আমি কেবল আইআইএসকে কখনই পুনর্ব্যবহার করতে এবং সাইটকে কখনই নিষ্ক্রিয় করতে বলি না। এটি এটিকে তৈরি করেছে যাতে আমি এই অনুমানের অধীনে কাজ করতে সক্ষম হয়েছি এবং স্থাপনার সময় এবং যখনই পরিকল্পনা করা রক্ষণাবেক্ষণ ঘটেছিল কেবল তখনই সাইটটি পুনর্ব্যবহার করা হবে। যেহেতু আমি কেবল একটি অ্যাডমিন টাইপ সাইট করছি তাই এটি আমার জন্য নিখুঁত কাজ করেছে।
ব্রেট

4
উদ্ভট যে এটিতে অনেক উত্সাহ রয়েছে। এইএসপি ডট নেট সম্পর্কে খুব শীতল জিনিসগুলির মধ্যে এই জিনিসটি সম্ভব: এটি যে অ্যাপ্লিকেশনগুলি তৈরি করতে পারে তার সাথে সমস্ত অনুরোধগুলি একই অ্যাপডোমাইনে সরবরাহ করা হবে। এটি "খারাপ ধারণা" হওয়ার কারণ হিসাবে প্রদত্ত কোনও কারণই আমাকে বিশ্বাসযোগ্য বলে মনে করে না। অ্যাপডোমেনগুলি হ্রাস পেতে পারে, হ্যাঁ - তবে এটি এএসপি.নেট পরিবেশের পক্ষে খুব কমই অনন্য। আপনার হোস্টিং পরিবেশ (গুগল HostingEnvironment.RegisterObject) এর সাথে আপনাকে দুর্দান্ত খেলতে হবে ।
জন

4
.NET 4.5.2 QueueBackgroundWorkItemসহজেই পটভূমির কাজগুলি নিবন্ধ করতে একটি নতুন বৈশিষ্ট্য যুক্ত করেছে , আপনি নিজের উত্তরটি আবার আপডেট করতে চাইতে পারেন।
স্কট চেম্বারলাইন

40

আমি গৃহীত উত্তরের সাথে একমত নই।

Task.Factory.StartNewASP.NET এ ব্যাকগ্রাউন্ড থ্রেড (বা একটি টাস্ক দিয়ে শুরু করা ) ভাল। সমস্ত হোস্টিং পরিবেশের মতো, আপনি শাটডাউন পরিচালনার সুবিধাগুলি বুঝতে এবং সহযোগিতা করতে চাইতে পারেন।

এএসপি.এনইটি তে, আপনি HostingEnvironment.RegisterObjectপদ্ধতিটি ব্যবহার করে শাটডাউন করার জন্য নিখুঁতভাবে থামার জন্য কাজটি নিবন্ধভুক্ত করতে পারেন । আলোচনার জন্য এই নিবন্ধ এবং মন্তব্যগুলি দেখুন ।

(যেমন জেরার্ড তার মন্তব্যে উল্লেখ করেছেন, এখন এমনও রয়েছে HostingEnvironment.QueueBackgroundWorkItemযে RegisterObjectকাজ করতে পটভূমির আইটেমটির জন্য একটি শিডিয়ুলার নিবন্ধন করার আহ্বান জানানো হয়েছে rall মোটামুটি নতুন পদ্ধতিটি কার্য-ভিত্তিক হওয়ায় এটি সর্বোত্তম।

আপনি যে সাধারণ থিমটি প্রায়শই শুনতে পান এটি একটি খারাপ ধারণা বলে, উইন্ডোজ পরিষেবা স্থাপনের বিকল্প বিবেচনা করুন (বা অন্য ধরণের অতিরিক্ত প্রক্রিয়া অ্যাপ্লিকেশন):

  • ওয়েব মোতায়েনের সাথে তুচ্ছ আর কোনও স্থাপনা নেই
  • নিখুঁতভাবে অ্যাজুরে ওয়েবসাইটগুলিতে মোতায়েনযোগ্য নয়
  • ব্যাকগ্রাউন্ড টাস্কের প্রকৃতির উপর নির্ভর করে প্রক্রিয়াগুলিতে সম্ভবত যোগাযোগ করতে হবে। এর অর্থ আইপিসির কিছু ফর্ম বা পরিষেবাটি একটি সাধারণ ডাটাবেস অ্যাক্সেস করতে হবে।

আরও নোট করুন যে কয়েকটি উন্নত দৃশ্যের অনুরোধগুলির মতো একই ঠিকানার জায়গায় পটভূমি থ্রেড চলতে পারে। আমি সত্যটি দেখেছি যে এএসপি.এনইটি এটি একটি দুর্দান্ত সুবিধা হিসাবে এটি করতে পারে যা। নেট এর মাধ্যমে সম্ভব হয়েছে।


এটা অসাধারণ. আমার একটি টাস্ক রয়েছে যা সম্পূর্ণ হতে 30 সেকেন্ডের মতো দরকার। কাজটি সম্পন্ন করার জন্য আপনার অ্যাপ্লিকেশন পুলটি যথেষ্ট দীর্ঘায়িত করতে হবে তবে নিখুঁত।
স্কুবা স্টিভ

4
নেট ফ্রেমওয়ার্ক ৪.৪.২ থেকে আপনি হোস্টিংএনার্জিচার.কুইউব্যাকগ্রাউন্ড ওয়ার্কআইটেম (অ্যাকশন <ক্যান্সেলেশন টোকেন>)
জেরার্ড কার্বি

আমার পর্যবেক্ষণগুলিতে মনে হয় আইআইএস শেষ পর্যন্ত এএসপি. নেট ওয়েব এপিআই বন্ধ করে দিচ্ছে এবং নতুন অনুরোধ না আসা পর্যন্ত এটি আরম্ভ করবেন না So সুতরাং নির্ধারিত সময়ে যখন আমার থ্রেডটি অ্যাপ্লিকেশনটি সরিয়ে ফেলবে বলে মনে করা যেতে পারে এমনকি চলমান না। আমি কি এই সম্পর্কে ভুল?
ডেভিড সোপকো

7

আপনি এই কাজের জন্য আইআইএস থ্রেড পুল থেকে কোনও থ্রেড ব্যবহার করতে চাইবেন না কারণ এটি থ্রেডটিকে ভবিষ্যতের অনুরোধগুলি প্রক্রিয়া করতে অক্ষম করে unable আপনি ASP.NET 2.0 তে অ্যাসিঙ্ক্রোনাস পৃষ্ঠাগুলি সন্ধান করতে পারেন তবে এটি সত্যই সঠিক উত্তর হবে না। পরিবর্তে, এটির মাধ্যমে আপনার কী উপকার হবে তা মাইক্রোসফ্ট বার্তা কুইউইংয়ের সন্ধান করা । মূলত, আপনি সারিটিতে টাস্কের বিবরণ যুক্ত করবেন এবং অন্য একটি পটভূমি প্রক্রিয়া (সম্ভবত একটি উইন্ডোজ পরিষেবা) সেই কাজটি পরিচালনার দায়িত্বে থাকবে। তবে মূল কথাটি হ'ল ব্যাকগ্রাউন্ড প্রক্রিয়াটি আইআইএস থেকে সম্পূর্ণ বিচ্ছিন্ন।


আহ, এমএসএমকিউ - আমার দীর্ঘমেয়াদী প্রিয় একটি প্রযুক্তি। অন্তর্দৃষ্টি এবং লিঙ্কের জন্য ধন্যবাদ।
ফ্রান্স

6

আমি এই জাতীয় প্রয়োজনীয়তার জন্য হ্যাংফায়ার ব্যবহার করার পরামর্শ দেব । এটি একটি দুর্দান্ত আগুন এবং ভুলে যাওয়া ইঞ্জিনটি পটভূমিতে চালিত হয়, বিভিন্ন আর্কিটেকচারকে সমর্থন করে, নির্ভরযোগ্য কারণ এটি অধ্যবসায় স্টোরেজ সমর্থন করে।


5

এখানে একটি ভাল থ্রেড এবং নমুনা কোড রয়েছে: http://forums.asp.net/t/1534903.aspx?PageIndex=2

এমনকি অ্যাপ্লিকেশন পুলটি বাঁচিয়ে রাখতে সহায়তা করার জন্য থ্রেড থেকে আমার ওয়েবসাইটে একটি লাইভ পেজ কল করার ধারণাটিও করেছি। আপনি যদি এই পদ্ধতিটি ব্যবহার করে থাকেন তবে মনে রাখবেন যে আপনার সত্যিকারের ভাল পুনরুদ্ধারের হ্যান্ডলিং দরকার, কারণ অ্যাপ্লিকেশনটি যে কোনও সময় পুনর্ব্যবহার করতে পারে। যেহেতু অনেকে উল্লেখ করেছেন যে আপনার যদি অন্যান্য পরিষেবা বিকল্পে অ্যাক্সেস থাকে তবে এটি সঠিক পদ্ধতির নয়, তবে ভাগ্যবান হোস্টিংয়ের জন্য এটি আপনার একমাত্র বিকল্প হতে পারে।

অ্যাপ পুলটি বাঁচিয়ে রাখতে সহায়তা করতে, থ্রেডটি প্রক্রিয়া চলাকালীন আপনি নিজের সাইটে একটি অনুরোধ করতে পারেন। যদি আপনার প্রক্রিয়াটি দীর্ঘ সময় চালায় তবে এটি অ্যাপ পুলটিকে বাঁচিয়ে রাখতে সহায়তা করতে পারে।

string tempStr = GetUrlPageSource("http://www.mysite.com/keepalive.aspx");


    public static string GetUrlPageSource(string url)
    {
        string returnString = "";

        try
        {
            Uri uri = new Uri(url);
            if (uri.Scheme == Uri.UriSchemeHttp)
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
                CookieContainer cookieJar = new CookieContainer();

                req.CookieContainer = cookieJar;

                //set the request timeout to 60 seconds
                req.Timeout = 60000;
                req.UserAgent = "MyAgent";

                //we do not want to request a persistent connection
                req.KeepAlive = false;

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                Stream stream = resp.GetResponseStream();
                StreamReader sr = new StreamReader(stream);

                returnString = sr.ReadToEnd();

                sr.Close();
                stream.Close();
                resp.Close();
            }
        }
        catch
        {
            returnString = "";
        }

        return returnString;
    }

5

আমরা এই পথটি শুরু করেছি এবং আমাদের অ্যাপ্লিকেশন যখন একটি সার্ভারে ছিল তখন এটি আসলে ঠিক কাজ করেছিল। যখন আমরা একাধিক মেশিনে স্কেল করতে চেয়েছিলাম (বা ওয়েব গ্যারেনে একাধিক ডাব্লু 3 ডাব্লুপি ব্যবহার করতে পারি) তখন আমাদের পুনরায় মূল্যায়ন করতে হবে এবং একটি মাত্র নিশ্চিত করার জন্য কীভাবে একটি কাজের সারি, ত্রুটি পরিচালনা, পুনরায় চেষ্টা এবং সঠিকভাবে লকিংয়ের জটিল সমস্যা পরিচালনা করতে হবে তা দেখতে হবে সার্ভার পরের আইটেমটি বাছাই করে।

... আমরা বুঝতে পেরেছিলাম যে আমরা ব্যাকগ্রাউন্ড প্রসেসিং ইঞ্জিনগুলি লেখার ব্যবসায়ের মধ্যে নেই সুতরাং আমরা বিদ্যমান সমাধানগুলি সন্ধান করেছি এবং দুর্দান্ত ওএসএস প্রকল্পের হ্যাংফায়ার ব্যবহার করে আমরা উঠে এসেছি

সের্গেই ওডিনোকভ একটি আসল রত্ন তৈরি করেছেন যা দিয়ে শুরু করা সত্যিই সহজ এবং আপনাকে কীভাবে অবিচ্ছিন্নভাবে কাজ করা এবং সারিবদ্ধ করা হয়েছে তার ব্যাকএন্ডের সন্ধান করতে দেয়। হ্যাংফায়ার ব্যাকগ্রাউন্ড থ্রেড ব্যবহার করে তবে কাজটি ধরে রাখে, পুনরায় চেষ্টা করে এবং কাজের সারিতে আপনাকে দৃশ্যমানতা দেয়। সুতরাং হ্যাংফায়ার কাজগুলি শক্ত এবং অ্যাপডোমেনগুলি পুনর্ব্যবহৃত হওয়া ইত্যাদির সমস্ত অস্পষ্টতা থেকে বাঁচে etc.

এর বেসিক সেটআপটি স্কয়ার সার্ভারটি স্টোরেজ হিসাবে ব্যবহার করে তবে আপনি যখন রেডিস বা এমএসএমকিউ এর আকার বাড়ানোর সময় পরিবর্তন করতে পারেন তখন। এটিতে সমস্ত চাকরি এবং তাদের স্থিতি কল্পনা করার জন্য একটি দুর্দান্ত ইউআই রয়েছে প্লাস আপনাকে পুনরায় সারিতে চাকরি দেওয়ার অনুমতি দেয়।

আমার বক্তব্যটি হ'ল ব্যাকগ্রাউন্ড থ্রেডে আপনি যা চান তা সম্পূর্ণরূপে সম্ভব হওয়ার পরেও এটিকে স্কেলযোগ্য এবং শক্তিশালী করার জন্য প্রচুর কাজ রয়েছে। সাধারণ কাজের চাপের জন্য এটি সূক্ষ্ম তবে যখন জিনিসগুলি আরও জটিল হয়ে যায় আমি এই প্রচেষ্টাটি না করে বরং একটি উদ্দেশ্য নির্মিত লাইব্রেরি ব্যবহার করতে পছন্দ করি।

উপলভ্য বিকল্পগুলির উপর আরও কিছু দৃষ্টিভঙ্গির জন্য স্কট হ্যানসেলম্যানের ব্লগটি পরীক্ষা করে দেখুন যা এসপ নেটনে ব্যাকগ্রাউন্ড জব হ্যান্ডেল করার জন্য কয়েকটি বিকল্পকে কভার করে। (তিনি হ্যাংফায়ারকে একটি জ্বলজ্বল পর্যালোচনা দিয়েছিল)

ফিল্ড হ্যাকের ব্লগটি কেন পদ্ধতির সমস্যাযুক্ত এবং অ্যাপডোমেনটি লোড করা না হলে কীভাবে সুতার সাথে কাজ বন্ধ করতে হবে সে সম্পর্কে জনের দ্বারা উল্লেখ করা হয়েছে।


2

আপনি কি সেই কাজটি করার জন্য একটি উইন্ডোজ পরিষেবা তৈরি করতে পারেন? তারপরে ওয়েব সার্ভার থেকে .NET রিমোটিংটি ব্যবহার করে উইন্ডোজ পরিষেবাটি কল করার জন্য? যদি তা হয় তবে আমি যা করতাম তা হ'ল।

এটি আইআইএস-এ রিলে করার প্রয়োজনীয়তা দূর করবে এবং এর কিছু প্রক্রিয়াকরণ ক্ষমতা সীমাবদ্ধ করবে।

যদি তা না হয় তবে প্রক্রিয়াটি সম্পন্ন হওয়ার পরে আমি ব্যবহারকারীকে সেখানে বসতে বাধ্য করব। এই ভাবে আপনি নিশ্চিত করেন যে এটি সম্পন্ন হয়েছে এবং আইআইএস দ্বারা হত্যা করা হয়নি।


2

আইআইএস-এ দীর্ঘকালীন চলমান কাজের হোস্টিংয়ের একটি সমর্থিত উপায় বলে মনে হচ্ছে। ওয়ার্কফ্লো পরিষেবাগুলি বিশেষত উইন্ডোজ সার্ভার অ্যাপফ্যাব্রিকের সাথে একত্রে এটির জন্য ডিজাইন করা মনে হয় । নকশাটি অ্যাপ্লিকেশন পুল পুনর্ব্যবহারের জন্য স্বয়ংক্রিয় অধ্যবসায় এবং দীর্ঘমেয়াদী কাজ পুনরায় শুরু করার পক্ষে সমর্থন করে।


2

আপনি পটভূমিতে কাজগুলি চালাতে পারেন এবং অনুরোধটি শেষ হওয়ার পরেও সেগুলি সম্পন্ন হবে। একটি অপ্রকাশিত ব্যতিক্রম নিক্ষেপ করবেন না । সাধারণত আপনি সর্বদা আপনার ব্যতিক্রম ছুঁড়ে ফেলতে চান। যদি কোনও ব্যতিক্রম কোনও নতুন থ্রেডে ফেলে দেওয়া হয় তবে এটি আইআইএস কর্মী প্রক্রিয়াটি ক্র্যাশ করবে - w3wp.exe , কারণ আপনি আর অনুরোধের প্রসঙ্গে নেই। এটি এরপরে প্রসেস মেমরি ব্যাকড সেশনগুলি ছাড়াও আপনার চলমান যে কোনও পটভূমি কাজগুলি যদি আপনি সেগুলি ব্যবহার করেন তবে তা হত্যার চেষ্টা করছে। এটি নির্ণয় করা শক্ত হবে, এই কারণেই অনুশীলনকে নিরুৎসাহিত করা হচ্ছে।


1

অ্যাসিঙ্ক কার্যগুলি চালানোর জন্য কেবল একটি সারোগেট প্রক্রিয়া তৈরি করুন; এটি উইন্ডো পরিষেবা হতে হবে না (যদিও এটি বেশিরভাগ ক্ষেত্রেই সর্বোত্তম পদ্ধতি is এমএসএমকিউ হ'ল মারার উপায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.