连接池仅在主页点击时触发-ASP.NET MVC5实体框架
本文关键字:-ASP NET MVC5 框架 实体 主页 连接 | 更新日期: 2023-09-27 18:29:23
问这个问题我真的觉得很傻,但我似乎想不通——尽管听起来很琐碎。
当我的网站空闲并且连接池关闭时,问题就会出现——如果我试图访问主页以外的页面,我会收到YSOD声明
"在建立与SQL Server的连接时发生与网络相关或特定于实例的错误"
我试着调试被调用的控制器操作,但它甚至没有被击中。。。我不知道我还能在哪里找到一个断点,看看该怎么称呼。
我可以通过sp_who看到连接断开,并在主页被点击时返回。
我正在使用ASP.NET MVC5和Entity Framework 6。我没有为连接池指定任何设置,因为EF默认情况下是打开的。我还在使用块包装我的所有DB上下文。
有人知道是什么导致了这种情况,甚至知道从哪里开始调试这种情况吗?
我认为表单身份验证可能是造成这种情况的原因,但话说回来,如果超时,我肯定会被重定向到MVC5在开始新项目时为您设置的默认帐户/登录路径。
更新我可以通过将SimpleRoleProvider添加到中的webconfig来解决这个问题
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear />
<add name="SimpleRoleProvider" connectionStringName="DefaultConnection" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
</providers>
</roleManager>
然后我不得不搬家:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
进入我的Global.cs,所以它是第一个被调用的东西。
我通过将SimpleRoleProvider添加到中的webconfig来解决这个问题
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear />
<add name="SimpleRoleProvider" connectionStringName="DefaultConnection" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
</providers>
</roleManager>
然后我不得不搬家:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
从InitializeSimpleMembershipAttribute.cs导出到我的Global.cs中,因此它是第一个调用的东西。