问题在于我的应用程序在生产环境中。当我在生产服务器上发布我的MVC应用程序ninject停止工作,页面加载大约30秒时,同一时间控制器方法只返回true / false(ajax查询)。很遗憾,只有托管公司的管理员给我的信息是:log from IIS
我的申请表:
MVC项目(4) - EntityFramework + Ninject,
重要的是我想在展示的LandingPage 开始在区域叫做" LandingPage"控制器名为" Landing"
存储库项目
包含模型接口的DB项目
我的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();
}
}