با سلام. توی پروژه سه تا 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(); } }
ممنون
چرا DefaultController را تغییر دادید ؟
احتمالا از همینجاست دوست من
بله درسته ولی من ioc container رو structure map اتتخاب کردم. و میبایست کنترلر رو override کنم .
درست شد. نمیدونم مشکل از کجا بود یا اصلا مشکلی بود! روی یه سیستم دیگه تست کردم و حل شد. فکر کنم iis یا ویندوز خراب شده باشه.
ممنون
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)