Dalam file log galat SQL Server saya menemukan baris berikut:
2018-02-22 14:10:58.95 spid17s Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s Starting up database 'XYZ'.
Jika saya memeriksa status database XYZ sebelum waktu ini, itu ONLINE
menggunakan pernyataan berikut:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... tetapi ketika saya mencoba untuk terhubung ke database ini menggunakan aplikasi C #, itu tidak dapat terhubung ke database.
Kesalahannya adalah:
Gagal masuk untuk pengguna 'asd'.
Alasan: Gagal membuka basis data yang ditentukan secara eksplisit.
Saya mencoba tiga pengguna yang berbeda (pengguna Windows, sa, pengguna SQL Server yang ditentukan untuk aplikasi). Masalahnya terjadi ketika saya menjalankan aplikasi di start up OS, tetapi jika saya memulai secara manual setelah start up, tidak ada kesalahan terjadi, jadi saya pikir semua pengaturan SQL Server dan pengaturan firewall sudah benar.
Saya juga memeriksa sebelum ini bahwa status layanan sedang berjalan.
Apa lagi yang harus saya periksa untuk memastikan bahwa basis data benar-benar online dan siap untuk pertanyaan?
Saya mencari kunci yang memberitahu saya tidak apa-apa untuk query database, daripada menunda untuk sementara waktu (bahkan tidak didasarkan pada alasan yang jelas).
Saya berpikir untuk memindai log kesalahan untuk teks "Memulai database 'XYZ'", tetapi ini berarti saya harus menambahkan pengaturan untuk aplikasi untuk jalur log kesalahan SQL Server. Itu juga berarti membaca file berkali-kali sampai saya menemukan frasa ini.