我在EF6(代码优先)中使用了ASP.NET Web,为了开发目的,我用DropCreateDatabaseAlways创建了一个初始化器。
我将应用程序部署在远程服务器(IIS 8.0)上,并注意到在一些不活动之后,当对API进行调用时,初始化程序就会被调用。我认为这个初始化程序只会在应用程序的每次运行中删除并创建数据库,但是一旦部署,应用程序就不会停止运行,那么是否存在超时,或者类似的情况?
如果你知道为什么会发生这种事。
下面是一些需要帮助的代码和日志。背景:
public MyDAL()
: base("MyEntities")
{
Database.SetInitializer<MyDAL>(new MyInitializer());
this.Database.Log = s => log.Info(s);
}一些日志:
//在05:30,请求成功,无需下垂/创建数据库2014-12-28 05:30:38 312 INFO -在2014年12月28日执行:30:38 +01:00
2014年-12-28 05:30:38,343个信息--在27 ms内完成,结果: SqlDataReader
2014-12-28 05:30:38,343 INFO -
2014-12-28 05:30:38 343 INFO -2014年12月28日30:30 +01:00
// 06:46客户请求认证服务2014-12-28 06:46:15 398 INFO - 2014-12-28 06:46:21 070 INFO打开连接
2014-12-28 06:46:21 132 INFO -2014年12月28日开始交易06:46:21 +01:00
2014-12-28 06:46:21,132 INFO -创建表dbo.
发布于 2014-12-28 15:31:38
因此,问题似乎在于IIS中应用程序池的配置。空闲时间以前设定在20分钟,现在当超时设置在24小时时,问题就消失了。
https://stackoverflow.com/questions/27675378
复制相似问题