Bir ADO.Net uygulaması yalnızca bazen yerel ağdaki başka bir sunucuya bağlanabilir. Belirli bir bağlantı girişiminin başarılı veya başarısız olması rastgele görünüyor. Bağlantı şu biçimde bir bağlantı dizesi kullanıyor:
Sunucu = THESERVER \ TheInstance; Veritabanı = TheDatabase; Kullanıcı Kimliği = Kullanıcı; Şifre = ThePassword;
döndürülen hata:
Bağlantı Zaman Aşımı Süresi Doldu. Oturum öncesi el sıkışma bildirimini kullanmaya çalışırken zaman aşımı süresi geçti.
Bunun nedeni, giriş öncesi anlaşmanın başarısız olması veya sunucunun zamanında yanıt verememesi olabilir.
Bu sunucuya bağlanmaya çalışırken harcanan süre - [Oturum Öncesi] başlatma = 42030; el sıkışma = 0;
.NET uygulaması, aşağıdaki kodu yürüten küçük bir test uygulamasıdır:
using (SqlConnection conn = new SqlConnection(cs))
using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn))
{
conn.Open();
int rowCount = (int)cmd.ExecuteScalar();
}
Tablo küçüktür, sadece 78 satırdır .
Ancak, .NET uygulamasının bu hatayı aldığı aynı makinede , THESERVER'a SSMS ve bağlantı dizesinde adı geçen Kullanıcı Kimliği / Parola kullanarak bağlanabiliyorum.
Bağlantı neden bir ADO.Net uygulamasından başarısız, ancak SSMS'deki aynı kimlik bilgileriyle başarılı olabilir?