আমার কাছে একটি সাইট রয়েছে যা কিছু সংস্থানগুলিতে একচেটিয়া লক ধারণ করে। আমি উপযুক্ত সময়ে এই সংস্থানগুলিতে লকটি অর্জন এবং প্রকাশের জন্য .NET অ্যাপ্লিকেশন_সার্ট এবং অ্যাপ্লিকেশন_এন্ড ইভেন্টগুলি ব্যবহার করেছি। এটি সঠিকভাবে কাজ করার জন্য, কোনও নির্দিষ্ট সময়ে আমার অ্যাপ্লিকেশনটির কেবল একবারে দৃষ্টান্ত থাকতে পারে।
এটি হওয়ার জন্য, আমি Disable Overlapped Recycleঅ্যাপ্লিকেশন পুলটিতে সম্পত্তি সেট করেছি True। এই সম্পত্তিটি নিশ্চিত করা উচিত যে যখনই অ্যাপ পুলটি পুনর্ব্যবহার করা হবে তখন কোনও নতুন শুরু হওয়ার আগে পুরানো কর্মী প্রক্রিয়া পুরোপুরি বন্ধ হয়ে যায়। আইআইএস-এর মাধ্যমে যখন অ্যাপ পুলটি ম্যানুয়ালি পুনর্ব্যবহার করা হয় তখনই এটি কার্যকর হয়, নিষ্ক্রিয়-সময়সীমার ফলাফল হিসাবে বা স্বয়ংক্রিয়ভাবে কোনও নির্দিষ্ট সময় / সময়ের ব্যবধান অনুসারে স্বয়ংক্রিয়ভাবে কার্যকর হয়।
তবে, সাইটের ওয়েবকনফিগটি আপডেট হয়ে গেলে, এই নিয়মটি প্রয়োগ হচ্ছে না - পুরানোটি বন্ধ হয়ে যাওয়ার আগে একটি নতুন কর্মী প্রক্রিয়া শুরু হবে। এর ফলে খারাপ কিছু ঘটে। ওয়েব কোড.ফিনিংস আপডেট হওয়ার সাথে সাথে অ্যাপটি পুলটি পুনর্ব্যবহৃত হওয়া চাই হিসাবে আমার Disable Recycling for Configuration Changesসম্পত্তিটি সেট করা আছে False- বিকাশের সময় এটি প্রায়শই ঘটে।
এটি কি এমন কিছু যা প্রত্যাশিত, বা এটি আইআইএস-এ কোনও বাগ আছে? সেটআপ করার জন্য আমার একমাত্র বিকল্প কী যাতে ওয়েবকনফিগ পরিবর্তন করা অ্যাপ পুলটিকে পুনর্ব্যক্ত না করে? আমি বরং এটি করব না, যেহেতু আমি দৃ sure়ভাবে নিশ্চিত যে এটি কনফিগারেশন পরিবর্তন করে এবং এরপরে অ্যাপ পুলটিকে পুনর্ব্যবহার করতে ভুলে অনেক লোকের মাথা ব্যথা সৃষ্টি করবে।
হালনাগাদ:
আরও স্পষ্ট করে বলতে গেলে, যখন startপুরানো শ্রমিক প্রক্রিয়াটি বন্ধ হয়ে যাওয়ার আগে নতুন কর্মী প্রক্রিয়া ইভেন্ট ডাকা হয়, তখন পুরানো কর্মী প্রক্রিয়া endইভেন্টটি কখনই ডাকে না - এটি ক্রমবর্ধমান হয় না, এটি কখনই ঘটে না।