生产服务器上的mvc app - ninject,routing,areas

时间:2017-04-12 22:21:55

标签: c# asp.net-mvc routes ninject asp.net-mvc-areas

问题在于我的应用程序在生产环境中。当我在生产服务器上发布我的MVC应用程序ninject停止工作,页面加载大约30秒时,同一时间控制器方法只返回true / false(ajax查询)。很遗憾,只有托管公司的管理员给我的信息是:log from IIS

我的申请表:

  1. MVC项目(4) - EntityFramework + Ninject,

    重要的是我想在展示的LandingPage 开始在区域叫做" LandingPage"控制器名为" Landing"

  2. 存储库项目

  3. 包含模型接口的DB项目

  4. 我的RouteConfig是:

        var route = routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Landing", action = "Index", id = 
        UrlParameter.Optional }
        ).DataTokens = new RouteValueDictionary(new { area = "LandingPage"}
        );
    

    我认为这个问题存在于Ninject配置中,但是在今天来自托管公司的信息后,我不知道如何处理这个问题。

    编辑: 我的RegisterService:

        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind<IEmailRepository>().To<EmailRepository>();
    
        }
    

    我的控制器:

        private readonly IEmailRepository repository;
        public LandingController(IEmailRepository repository)
        {
            this.repository = repository;
        }
    

    EmailRepository:

    public class EmailRepository : IEmailRepository
    {
        ReliableDB context;
    
        public EmailRepository(ReliableDB context)
        {
            this.context = context;
        }
    
        public void InsertOrUpdate(string emailAddress)
        {
            LPEmail item = new LPEmail();
            item.Date = DateTime.Now.Date;
            item.Email_Address = emailAddress;
            context.LPEmail.Add(item);
        }
    
        public bool EmailExists(string emailAddress)
        {
            bool result = context.LPEmail.Any(w => w.Email_Address == emailAddress);
            return result;
        }
    
        public void Save()
        {
            context.SaveChanges();
        }
    
        public void Dispose()
        {
            context.Dispose();
        }
    
    }
    

0 个答案:

没有答案