Назад | Перейти на главную страницу

Определенному сайту не удается подключиться к серверу MSSQL после перезагрузки

У меня очень неприятная проблема на моем сервере Windows 2008 R2. Каждый раз при перезапуске, запланированном или незапланированном, один конкретный сайт не может подключиться к серверу базы данных, экземпляру MSSQL Server 2008 R2 Express на том же компьютере. Это даст следующую ошибку:

Невозможно открыть базу данных "SiteDb", запрошенную логином. Не удалось войти в систему.
Ошибка входа для пользователя SiteDbUser.

Эта ошибка будет продолжаться до тех пор, пока я вручную не перезапущу пул приложений для этого конкретного сайта - простой перезапуск веб-сайта, похоже, не поможет. Как только я перерабатываю пул приложений, сайт подключается нормально и будет продолжать это делать до следующей перезагрузки. Странно то, что у меня есть другие сайты, работающие на этом веб-сервере, который, похоже, не страдает от этой проблемы - они будут нормально подключаться после перезагрузки. На всех моих сайтах разные пользователи MSSQL, но я сравнил те, которые работают, с тем, что не работает, и, похоже, не могу найти никаких различий. Я также пробовал создать нового пользователя для проблемного веб-сайта, но, похоже, это не имеет значения. Я попытался указать и имя экземпляра, и «127.0.0.1» в строке подключения, и оба работают для других сайтов, но ни один из них не имеет значения для проблемного сайта.

Я также пробовал несколько других вещей, но поскольку мне нужно перезагрузить сервер, чтобы проверить его (или, по крайней мере, так кажется?), Тестирование это немного «дорого», потому что на сервере работают сайты с довольно большим количеством ежедневных посетителей, что важно для моего бизнеса.

Кто-нибудь из вас, ребята, испытал что-то подобное? Буду признателен за любые идеи :)

Возможно, что при перезагрузке IIS станет доступным раньше, чем база данных SQL Server (т.е. он находится в процессе восстановления и недоступен). У вас много баз данных? Это может означать более длительное время запуска.

Я предполагаю, что это «Невозможно открыть базу данных« SiteDb », запрошенную логином», что означает, что логин успешен, но не может подключиться к указанной базе данных.

Идеи:

  • Можете ли вы изменить службы IIS на отложенный запуск?
  • Установите задание запуска, которое ждет 30 секунд, а затем выдает iisreset
  • Добавить логику повтора в веб-код?