2009-06-23 14 views
11

Bu hatayı rastgele web uygulamasında almaya devam ediyoruz.Neden bu hatayı aralıklı olarak alacağım? "Sunucu bulunamadı veya erişilemedi"

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Şimdiye kadar zaman hata var eğer mantıklıdır ama aralıklı olarak başka bir şey oluyor önermek olsun.

Bunu deneyimleyen var mı? Herhangi bir öneri veya teori var mı?

Teşekkürler!

+1

sql sunucusu yedekleme penceresi sırasında gerçekleşir mi? –

+2

aksi halde birisinin önerdiği gibi hatalı bir NIC veya yönlendirici/anahtarın –

+1

olduğundan şüphelenebilirim, SQL sunucunuz hiç CPU veya bellek tükendi mi? donanım kurulumunuzu yayınlamanızı öneririz ... –

cevap

6

Sunucunun yanıt vermek için çok meşgul olması olası - SQL Express veya Workgroup Edition kullanıyor musunuz? Ayrıca, bu sunucuda bir seferde kaç bağlantı var? Tüm bağlantılarda belirli bir zamanda bu hata mı oluyor, yoksa başkaları aynı anda başarılı olurken bazı bağlantılar reddediliyor mu?

Ayrıca, bir "PING -t Sunucu Adı" yaparsanız ve izlerseniz, her ping geri gelir mi, yoksa kaybolur mu? Bu, bu hataya da neden olabilecek ağ kesintilerinin bir göstergesi olabilir.

4

Bunu daha önce başka bir konumdaki bir uzak cihaza erişirken gördüm. İki site arasındaki yönlendirici yapılandırmasından ötürü olduğu gibi şüpheliyim, diyelim ki, cludgy. Bir ağ yapılandırması ya da kötü bir donanımdan dolayı bunu elde etmek tamamen mümkündür, ancak diğer birçok olasılığı tüketene kadar bu sonuca atlamam.

5

Bunu çok fazla güvenlik duvarı nedeniyle yaptık: istemci (HK veya NY, İsviçre'deydik) uzaklaştıkça daha sık oldu. Londra: nadiren. İsviçre: asla. Bize (DB mühendisliğimiz ve MS yardımımızla), yönlendiriciler ve güvenlik duvarları nedeniyle gecikmelerin Kerberos ve/veya ilgili zamanlamaları bozduğu açıklandı.

Düzeltme: bağlantı dizesindeki bağlantı noktasını kullanın. Bu, örneği numaralandırmak için 1434 numaralı bağlantı noktasına gidiş gelişini önler. FQDN'yi zaten kullandık.

Örnek: server.domain.tld \ örneği, liman

YNNV tabii ki, ama bizim için çalıştı

4

Ben aynı sorun vardı;

System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

ve bu bir: biz Named Pipes kullanarak değildi olarak

System.Data.SqlClient.SqlException: A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

birincisi, özellikle tuhaf biz de bu bir var. Her neyse, problemin hatalı bir anahtar olduğu ortaya çıktı.

Uygulama durumu ve uygulamalar arasında PING için zamanlanmış bir görev ayarlamaya başlamadan önce uygulama ve db düzeyindeki sorun giderme sorunlarını çözdüm (hem IP adresi hem de sunucuların NETBIOS adı kullanılarak). netbios adı arama).

Ping hataları, DB hatalarıyla aynı anda güvenilir bir şekilde gerçekleşti, bu yüzden ağ donanımı olduğunu ve daha yüksek bir düzeyde bir şey olmadığını biliyorduk.

Anahtarın değiştirilmesi, her şeyi sabitledi.

İlgili konular