مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mansoun

عضویت از 1394/03/24

ارور و باز نشدن area ها

  • چهارشنبه 3 مرداد 1397
  • 17:13
تشکر میکنم

با سلام. توی پروژه سه تا Area درست کردم. فقط areaها رو باز نمیکنه و ارور زیر رو میده.

چند روز پیش هم همین ارور رو داد که بعدش درست شد خودش.

ویو های بیرون area رو میاره.

url درسته اما ارور میده. هرچی هم توی رفرنس های انگلیسی گشتم چیزی پیدا نکردم جز روتینگ area که فرقی نکرد.

namespaceها درسته.

نکته 1 : از structure Map  به عنوان Ioc استفاده شده.

کد کامل global.asax : 


public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            setDbInitializer();
            //Set current Controller factory as StructureMapControllerFactory
            ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
            Microsoft.AspNet.SignalR.GlobalHost.DependencyResolver = SmObjectFactory.Container.GetInstance<Microsoft.AspNet.SignalR.IDependencyResolver>();
        }
        private static void setDbInitializer()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<OnlineAcademyDbContext, Configuration>());
            SmObjectFactory.Container.GetInstance<IUnitOfWork>().ForceDatabaseInitialize();
        }
        public class StructureMapControllerFactory : DefaultControllerFactory
        {
            protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
            {
                if (controllerType == null)
                {
                    throw new HttpException(404, $"Resource not found : {requestContext.HttpContext.Request.Path}");
                }
                return SmObjectFactory.Container.GetInstance(controllerType) as Controller;
            }
        }
        protected void Application_EndRequest(object sender, EventArgs e)
        {
            HttpContextLifecycle.DisposeAndClearAll();
        }
    }

ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 3 مرداد 1397
  • 22:48

چرا DefaultController  را تغییر دادید ؟

احتمالا از همینجاست دوست من

کاربر سایت

mansoun

عضویت از 1394/03/24

  • شنبه 6 مرداد 1397
  • 21:13

بله درسته ولی من ioc container  رو structure map اتتخاب کردم. و میبایست کنترلر رو override کنم . 

کاربر سایت

mansoun

عضویت از 1394/03/24

  • یکشنبه 7 مرداد 1397
  • 14:35

درست شد. نمیدونم مشکل از کجا بود یا اصلا مشکلی بود! روی یه سیستم دیگه تست کردم و حل شد. فکر کنم iis یا ویندوز خراب شده باشه.

ممنون

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)