Я действительно чувствую себя глупо, задавая этот вопрос, но я не могу понять этого, хотя это звучит тривиально.
Проблема возникает, когда мой сайт простаивает, и пул соединений закрыт - если я пытаюсь получить доступ к странице, отличной от главной страницы, я получаю сообщение YSOD
"При установлении соединения с SQL Server возникла связанная с сетью или специфичная для экземпляра ошибка,
Я попытался отладить вызванное действие контроллера, но его даже не попало... и я понятия не имею, где еще я могу разместить точку останова, чтобы увидеть, что нужно назвать.
Я вижу, что соединение отключается с помощью sp_who и возвращается при ударе по домашней странице.
Я использую ASP.NET MVC5 вместе с Entity Framework 6. Я не указывал никаких параметров для пула соединений, поскольку он по умолчанию включен с EF. Я также обертываю все мои контексты БД при использовании блоков.
Кто-нибудь знает, что может вызвать это или даже где начать искать в отношении отладки этого?
Я думаю, что эта проверка подлинности может быть ответственна за это - но опять же, конечно же, если это время было бы перенаправлено на путь по умолчанию для учетной записи/входа, который MVC5 задает вам при запуске нового проекта.
UPDATE Я смог исправить это, добавив 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 в my Global.cs, так что это было первое, что называется.