কম্পিউটার টিউটোরিয়াল

DistributedCOM এরর 10016 উইন্ডোজে: অ্যাপ্লিকেশন-স্পেসিফিক পারমিশন সেটিংস লোকাল এক্টিভেশন পারমিশন দেয় না

এই পোস্টে আমি দেখাব কীভাবে উইন্ডোজ ১০ বা উইন্ডোজ সার্ভার ২০১২ R2 চালিত কম্পিউটারে DistributedCOM সোর্স থেকে EventID 10016 এরর ফিক্স করতে হয়। DCOM 10016 ইভেন্ট ক্লায়েন্ট এবং সার্ভার উভয় উইন্ডোজ ভার্সনে (উইন্ডোজ XP থেকে শুরু করে) খুব কমন এবং একই পদ্ধতিতে একইভাবে সব উইন্ডোজ ভার্সনে এই এরর ফিক্স করা যায়।

সমস্যাটি যেন দেখায়: কম্পিউটার বুট হওয়া বা কোনো অ্যাপ্লিকেশন 스타র্ট বা ইনস্টল করার চেষ্টা করার সময় উইন্ডোজ ইভেন্ট ভিউয়ারের System সেকশনে নিচের এরর আসে:

Log Name: System
Source: DistributedCOM
Event ID: 10016
Level: Error
User: SYSTEM
Description: The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {000209FF-0000-0000-C000-000000000046} and APPID Unavailable to the user IIS APPPOOL\appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

এরর ডেসক্রিপশন অনুযায়ী: কোনো ব্যবহারকারী (যেমন IIS Apppool) বা সিস্টেম (NT AUTHORITY\SYSTEM) DCOM ইনফ্রাস্ট্রাকচার ব্যবহার করে কোনো COM কম্পোনেন্ট চালানোর চেষ্টা করছে এবং "Local Launch" বা "Local Activation" পারমিশন না থাকায় সেটি করতে পারছে না। এরর কোডে শুধু COM কম্পোনেন্ট এবং অ্যাপ্লিকেশনের ক্লাস কোড থাকে। চলুন নির্দিষ্ট অ্যাপ্লিকেশনটি যেটি এই আইডেন্টিফায়ারটি বিলাঙ করে সেটি নির্ধারণ করি এবং সফলভাবে চালু ও এক্টিভেট করার জন্য প্রয়োজনীয় পারমিশনগুলো দিই।

ইভেন্ট ডেসক্রিপশন থেকে CLSID এবং APPID কপি করুন। আমার কেসে এটি:

CLSID : {000209FF-0000-0000-C000-000000000046}
APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843}

(কিছু কেসে অ্যাপ্লিকেশন আইডেন্টিফায়ার স্পেসিফাইড নাও থাকতে পারে – APPID Unavailable)।

এছাড়া নোট করুন কী পারমিশন অনুপস্থিত (Local Activation permission) এবং কোন অ্যাকাউন্টের জন্য (NT AUTHORITY\SYSTEM বা IIS APPPOOL\appIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824)।

প্রতিটি কেসে ক্লাস, অ্যাপ্লিকেশন, অ্যাকাউন্ট আইডেন্টিফায়ার এবং অ্যাক্সেস টাইপ ভিন্ন হতে পারে।

  1. Registry Editor (regedit.exe) চালান;
  2. আপনার CLSID-র সাথে মিলে যাওয়া রেজিস্ট্রি কী-এ যান। আমার কেসে এটি HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046}; কিছু কেসে HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ রেজিস্ট্রি কীও চেক করতে হয়। রিমোটলি রেজিস্ট্রি কানেক্ট করলে এটি HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID-এ থাকবে।
  3. ক্লাস প্যারামিটারে অ্যাপের নাম স্পেসিফাইড থাকবে (আমার কেসে Microsoft Word Application); সবচেয়ে বেশি DCOM এরর 10016 নিচের কম্পোনেন্টগুলোতে হয়: Immersive Shell
    CLSID: {C2F03A33-21F5-47FA-B4BB-156362A2F239}
    APPID: {316CDED5-E4AE-4B15-9113-7055D84DCC97}
    RuntimeBroker
    CLSID: {D63B10C5-BB46-4990-A94F-E40B9D520160}
    APPID : {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
  4. রেজিস্ট্রি কী-এ রাইট-ক্লিক করে Permissions সিলেক্ট করুন;
  5. Advanced বাটনে ক্লিক করুন;
  6. NT Service\TrustedInstaller বা SYSTEM Owner সেকশনে 스페সিফাইড থাকবে;
  7. Change বাটনে ক্লিক করুন এবং আপনার অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টের নাম দিন। পরিবর্তন সেভ করুন;
  8. বর্তমান রেজিস্ট্রি কী ওয়নারের নাম আপনার অ্যাকাউন্টে পরিবর্তন হয়েছে কিনা নোট করুন। Replace owner on subcontainers and objects চেকবক্স চেক করুন এবং "OK" ক্লিক করুন;
  9. আপনার অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টকে পারমিশন লিস্টে যোগ করুন এবং Full Control পারমিশন দিন;
  10. আপনি CLSID-র রেজিস্ট্রি কী-এ পারমিশন দিয়েছেন। এখন একই ধাপগুলো পুনরাবৃত্তি করে আপনার APPID-এর রেজিস্ট্রি কী-ও (এরর ডেসক্রিপশন থেকে, উদাহরণস্বরূপ HKEY_CLASSES_ROOT\AppID\{AD65A69D-3831-40D7-9629-9B0B50A93843}) অồnারশিপ এবং পারমিশন আপনার অ্যাডমিন অ্যাকাউন্টের জন্য পরিবর্তন করুন;
  11. কম্পোনেন্ট ম্যানেজমেন্ট কনসোল (dcomcnfg) অ্যাডমিনিস্ট্রেটর হিসেবে চালান (Control Panel → All Control Panel Items → Administrative Tools → Component Services);
  12. কম্পোনেন্ট কনসোলে Component Services → Computers → My computer → DCOM Config-এ যান। COM কম্পোনেন্টের লিস্টে ২ নম্বর ধাপে নির্ধারিত কম্পোনেন্টের নাম খুঁজুন (Application ID কলামের মান আপনার DCOM 10016 এরর ডেসক্রিপশনের CLSID-র সাথে মিলতে হবে);
  13. যদি লিস্টে আপনার কম্পোনেন্ট না পান, তবে সম্ভবত আপনি ৬৪-বিট উইন্ডোজ ব্যবহার করছেন, এবং আপনি যে কম্পোনেন্ট চালাতে চাচ্ছেন সেটি ৩২-বিট। এই কেসে DCOM কনসোল এই কমান্ড দিয়ে চালাতে হবে: mmc comexp.msc /32.
  14. Security ট্যাবে ক্লিক করুন। সকল ফর্ম কন্ট্রোল পরিবর্তন করার জন্য অ্যাক্সেসিবল থাকবে;
  15. যদি কম্পোনেন্ট রেজিস্ট্রি কী-এ পারমিশন পরিবর্তন করার আগে dcomcnfg কনসোল খোলেন, তবে Security ট্যাবে সকল সেটিং লক করা থাকবে (পরিবর্তন করা যাবে না), mặc dù আপনি অ্যাডমিনিস্ট্রেটর হিসেবে কনসোল চালিয়েছেন।
  16. আমার কেসে অ্যাপ্লিকেশনে Local Activation-এর পারমিশন ছিল না। Launch and Activation Permissions সেকশনে Customize সিলেক্ট করুন এবং Edit বাটন চাপুন;
  17. এরর ডেসক্রিপশনে স্পেসিফাইড অ্যাকাউন্টকে ACL-এ যোগ করুন। DCOM 10016 এরর টেক্সট অনুযায়ী এটি হতে পারে SYSTEM, নির্দিষ্ট ব্যবহারকারী, বা IIS পুল চালানোর অ্যাকাউন্ট (এই কেসে লোকাল IIS_IUSR গ্রুপের জন্য এক্সেস যোগ করতে হবে); যদি প্রাথমিক এররে NT AUTHORITY\NETWORK SERVICE স্পেসিফাইড থাকে NT AUTHORITY\SYSTEM-এর বদলে, তবে NetworkService অ্যাকাউন্টের জন্য লোকাল লঞ্চ এবং এক্টিভেশন পারমিশন অ্যাসাইন করতে হবে।
  18. অ্যাকাউন্টের জন্য প্রয়োজনীয় পারমিশন দিন। উদাহরণস্বরূপ, Local Launch = Allow এবং Local Activation = Allow.
  19. কম্পিউটার রিস্টার্ট করুন এবং ইভেন্ট লগ চেক করুন। DCOM 10016 এররটি গায়েব হয়ে যাবে।
  1. Windows 10-এ 10016 পারমিশন এরর (SecurityAppBroker) সমাধান – ধাপে ধাপ গাইড

  2. Windows 10 এবং Server-এ COM সার্ভার অনুমতি ত্রুটি সমাধান (ইভেন্ট আইডি 10016)

  3. উইন্ডোজ ১০-এ DistributedCOM এরর ১০০১৬ ফিক্স—ধাপে ধাপে গাইড

  4. 'উইন্ডোজ নেটওয়ার্ক প্রক্সি সেটিংস অটোমেটিক্যালি ডিটেক্ট করতে পারলো না' এরর দ্রুত ফিক্স করুন