پلاگین های فروشگاه ساز Nop Commerce معمولا در مسیر Plugins/bin ذخیره می شوند. اما اگر دسترسی به آن ها مشکل داشته باشد، معمولا ضمن درج نام پلاگین با خطای زیر به عنوان نمونه مواجه می شوید:
Application startup exception: System.Exception: Plugin 'Must be assigned to customer role'. Access to the path 'C:\domain.com\Plugins\bin\Nop.Plugin.DiscountRules.CustomerRoles.dll' is denied.
Access to the path 'C:\domain.com\Plugins\bin\Nop.Plugin.DiscountRules.CustomerRoles.dll' is denied.
دلیل خطا
ساختار ناپ کامرس به گونه ای طراحی شده که معمولا فایل های dll و سیستمی مربوط به پلاگین ها را به جای دسترسی مستقیم در مسیری موقتی کپی کرده و اصطلاحا از فضای Shadow Copy فراخوانی می کند. حال ممکن است گاهی اوقات آنچه که در Shadow Copy می باشد با آنچه که در مسیر اصلی پلاگین ها وجود دارد تناقض داشته باشد. مثلا فایل مورد نیاز در Shadow Copy نباشد. این به آن معناست که در حین اجرای پردازه مرتبط با فایل ذکر شده در متن خطا، وبسایت دچار Crash شده و بخش Shadow Copy به درستی فرایند خود را تکمیل نکرده است. همچنین ممکن است دسترسی لازم جهت دسترسی به فایل ذکر شده در متن خطا وجود نداشته باشد. بنابراین باید سطوح دسترسی فولدر Plugins و موارد بالادستی را تصحیح کنید و در صورت لزوم Application Pool را برای بازسازی فرایند Shadow Copy اصطلاحا Restart کنید.
نحوه رفع خطا
برای تصحیح سطوح دسترسی، مراحل زیر را طی کنید:
1- به پنل پلسک لاگین کنید.
2- در بین گزینه های موجود، File manager را انتخاب و به مسیر بارگذاری اطلاعات وبسایت (احتمالا httpdocs) مراجعه کنید.
3- پوشه Plugins را یافته و در ستون آخر گزینه Change Permissions را برگزینید.
4- اطمینان حاصل کنید سه کاربر Administrators، System و Application Pool Group از دسترسی سطح کامل (Full Control) برخوردار هستند.
5- پس از تنظیم Full Control برای هر 3 کاربر، گزینه Replace permission entries on all child objects with the entries displayed here را نیز فعال و سپس با کلیک بر روی دکمه Apply/OK، تغییرات را اعمال کنید.
کار تمام شد. انتظار می رود با تصحیح سطوح دسترسی مشکل رفع شود. اگر مشکل رفع نشد به نکاتی که در ادامه ذکر شده است توجه فرمایید.