‫۹ سال و ۵ ماه قبل، شنبه ۲۹ فروردین ۱۳۹۴، ساعت ۲۱:۴۲
- در همان تصویر اولی که ارسال کردید، برگه‌ی اول headers هست و برگه‌ی سوم آن response، که صفحه‌ی زرد رنگ معروف خطاهای ASP.NET را نمایش می‌دهد.
- ابتدا بررسی کنید response ایی که در حالت دیباگ مشاهده می‌کنید چی هست.
- سپس بررسی کنید اصلا متد RegisterRoutes ایی که عنوان شد، فراخوانی می‌شود و مسیریابی آن در سیستم ثبت می‌شود یا خیر؟ (یک break point داخل آن قرار دهید)
اگر فراخوانی نمی‌شود، بررسی کنید آیا فایل‌های پوشه‌ی bin این افزونه، به پوشه‌ی bin پروژه‌ی اصلی کپی شده‌اند یا خیر؟
‫۹ سال و ۵ ماه قبل، شنبه ۲۹ فروردین ۱۳۹۴، ساعت ۲۱:۱۴
در متد RegisterRoutes ایی که در مثال فوق هست:
        public void RegisterRoutes(RouteCollection routes)
        {
            //....  
            routes.Insert(0,
                new Route("NewsArea/Images/{file}.{extension}",
                    new RouteValueDictionary(new { }),
                    new RouteValueDictionary(new { extension = "png|jpg" }),
                    new EmbeddedResourceRouteHandler(assembly, resourcePath, cacheDuration: TimeSpan.FromDays(30))
                ));
        }
آدرسی‌هایی با فرمت NewsArea/Images/file به EmbeddedResourceRouteHandler هدایت می‌شوند.
- بررسی کنید آدرس کاملی که به 404 ختم شده چیست؟ آیا آدرس درخواستی با NewsArea/Images شروع می‌شود؟
- در برگه‌ی response آن چه خروجی را مشاهده می‌کنید؟
‫۹ سال و ۵ ماه قبل، شنبه ۲۹ فروردین ۱۳۹۴، ساعت ۱۴:۲۳
- برنامه‌ی DNT Profiler باید پیش از اجرای برنامه‌ی وب شما اجرا شود و نه پس از آن.
+ خطاهای DNTProfiler.EntityFramework.Core داخل فایل App_Data \ErrorsLog.Log ثبت می‌شوند. این فایل را بررسی کنید.
‫۹ سال و ۵ ماه قبل، شنبه ۲۹ فروردین ۱۳۹۴، ساعت ۰۰:۴۱
- لطفا stack trace کامل را ارسال کنید.
- اگر در PluginsStart پیام FileNotFoundException را دریافت می‌کنید، احتمالا یکی از وابستگی‌ها و ارجاعات پروژه یا افزونه‌ها، در پوشه‌ی bin برنامه وجود ندارند یا کپی نشده‌اند.

نکته 1
Copy "$(ProjectDir)$(OutDir)$(TargetName).*" "$(SolutionDir)MvcPluginMasterApp\bin\"
دستور post build event عنوان شده در قسمت اول، فقط اسمبلی‌های اصلی افزونه را به پوشه‌ی bin پروژه‌ی اصلی کپی می‌کند. اگر این افزونه ارجاعات بیشتری دارد که در پروژه‌ی اصلی وجود ندارند، باید کل پوشه‌ی bin افزونه را کپی کنید و نه فقط فایل‌های اصلی آن‌را.
برای مثال فایل MvcPluginMasterApp.Common هم باید به پوشه‌ی bin کپی شود. 

نکته 2
اگر پیام FileNotFoundException توسط استراکچرمپ صادر می‌شود، نیاز است inner exception آن‌را بررسی کنید. اصل خطای رخ داده را در inner exception ارائه می‌دهد.
‫۹ سال و ۵ ماه قبل، جمعه ۲۸ فروردین ۱۳۹۴، ساعت ۲۰:۵۳
- در عمل کل برنامه و تمام افزونه‌های آن از یک IUnitOfWork استفاده می‌کنند؛ یعنی تمام آن‌ها به تمام مدل‌های اضافه شده‌ی به Context اصلی برنامه دسترسی دارند. بنابراین هر پلاگین در صورت نیاز امکان دسترسی به مدل‌های برنامه‌ی اصلی یا سایر افزونه‌ها را دارا است. تمام این افزونه‌ها در کنار هم یک سیستم را تشکیل می‌دهند و مانند شکل انتهای بحث، از یک بانک اطلاعاتی استفاده می‌کنند.
- به همین جهت تنها کاری که باید انجام داد، افزودن ارجاعی به کلاس‌های مدل مورد نظر هست. پس از آن شبیه به کاری که در DatabaseSeeder انجام شده، می‌توان با استفاده از متد Set، به کلیه امکانات مدلی خاص دسترسی یافت:
DatabaseSeeder = uow =>
{
     var news = uow.Set<News>();
اگر نمی‌خواهید ارجاعی را به کلاس‌های مدل مورد نظر اضافه کنید، با توجه به اینکه این کلاس‌ها هم اکنون جزئی از وهله‌ی Context ارائه شده‌ی توسط IUnitOfWork هستند، باید متوسل به Reflection و تدارک متد Set ویژه‌ای شوید که بجای News، معادل رشته‌ای آن‌را دریافت کند.
ولی در کل افزودن ارجاعی به کلاس‌های مدل دیگر، مشکل ساز نیست؛ چون این کلاس‌ها عملا منطق خاصی را پیاده سازی نمی‌کنند و همچنین وابستگی خاصی هم به پروژه‌ی خاصی ندارند. یک سری کلاس دارای خاصیت‌های get/set دار معمولی هستند به همراه تنظیمات آن‌ها.