İlk denemede SQL Server Zaman Aşımı


9

Visual Studio Veri Kaynakları veya SQL Yönetim konsolunun kendisi aracılığıyla, ikinci bir bilgisayarda (Win7 64-bit çalışan her iki makine) çalışan SQL Server 2008'e eklemek çalışıyorum garip bir sorun yaşıyorum.

İlk bağlantı girişiminde zaman aşımına uğradı. İkinci deneme iyi çalışıyor.

İkinci bilgisayardaki paylaşımlara herhangi bir zorluk çekmeden erişebilirim, sadece her uygulama örneği için SQL'e bağlanmaya çalıştığım gibi görünüyor. Yani, iki Visual Studio örneği açarsam, her ikisi de ilk bağlantı denemelerinde başarısız olur, ancak ikincisinde başarılı olur. Her örnek için iki kez bağlanmak zorundayım (başka bir uygulamadaki başarısızlık / başarı sırasına bakılmaksızın).

Umarım bu mantıklıdır.

Herhangi bir tavsiye?


Diğer makineye bağlanmak için hangi adlandırma yöntemini kullanıyorsunuz, bir IP adresi (yani 192.168.1.1) veya aşağıdaki gibi bir ad mı kullanıyorsunuz: MySqlServer. Bunun bir ad çözümlemesi sorunu olduğundan şüpheleniyorum, Sql sunucusunun adını ana bilgisayarlar dosyanıza koyarak bu sorunun ortadan kalkması gerektiğini onaylayabilirsiniz.
Kodlama Gorilla

Makine adına göre, ancak ev ağımda ve makine adını kullanarak paylaşımları vurabilirim. Sorunları veren sadece SQL.
SergioL

Yanıtlar:


6

Sanırım çözümü buldum, en azından benim durumumda çalışıyor. Örnek adı kullanıyorum ve bu otomatik olarak sql sunucu hizmeti için dinamik bir bağlantı noktası anlamına gelir. Ayarları dinamikten bir düzeltme bağlantı noktasına değiştirdim ve bu bağlantı noktasında güvenlik duvarını açtım.

SQL Server Yapılandırma Yöneticisi -> SQL Server Ağ Yapılandırması -> 'ÖrnekAdı' için Protokoller -> TCP / IP -> Özellikler -> IP Adresleri -> IP Tümü ->

Burada iki seçenek görüyorsunuz:

  • TCP Dinamik Bağlantı Noktaları: 51250 (rastgele oluşturulur)
  • TCP Bağlantı Noktası: boş - Buraya 1433'ü koydum ve sonra güvenlik duvarını açtım (daha önce açılmadıysa). İstediğiniz bağlantı noktasını koyabilirsiniz (1433'ü koydum çünkü tek örnekti. Birden çok örnek olması durumunda, her örnek için farklı bir bağlantı noktası seçmeli ve ardından güvenlik duvarında açmalısınız)

Komut dosyası MS'den indirdiğim bağlantı noktalarını açma görevinizi kolaylaştırmak için kullanıldı ve burada yeniden üretiyorum (yorumlar Almanca ama açık olmalı):

@echo =========  Ports des SQL-Servers  ===================
@echo Aktivieren von Port 1433 für die SQLServer-Standardinstanz
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Aktivieren von Port 1434 für dedizierte Administratorverbindungen
netsh firewall set portopening TCP 1434 "SQL-Administratorverbindung" 
@echo Aktivieren von Port 4022 für den konventionellen SQL Server-Service Broker  
netsh firewall set portopening TCP 4022 "SQL-Service Broker" 
@echo Aktivieren von Port 135 für Transact-SQL-Debugger/RPC 
netsh firewall set portopening TCP 135 "SQL-Debugger/RPC" 
@echo =========  Ports für Analysedienste  ==============
@echo Aktivieren von Port 2383 für die SSAS-Standardinstanz
netsh firewall set portopening TCP 2383 "Analysedienste" 
@echo Aktivieren von Port 2382 für den SQL Server-Browserdienst
netsh firewall set portopening TCP 2382 "SQL-Browser" 
@echo =========  Verschiedene Anwendungen  ==============
@echo Aktivieren von Port 80 für HTTP 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Aktivieren von Port 443 für SSL
netsh firewall set portopening TCP 443 "SSL" 
@echo Aktivieren des Ports für die Schaltfläche 'Durchsuchen' des SQL Server-Browserdiensts
netsh firewall set portopening UDP 1434 "SQL-Browser" 
@echo Zulassen von Multicast-/Broadcastantwort auf UDP (Aufzählung der Browserdienste OK)
netsh firewall set multicastbroadcastresponse ENABLE

2

En iyi tahminim , veritabanı için AUTO_CLOSE ayarının açık olmasıdır. Bu, veritabanının bağlandığınızda dönmesi gerektiği anlamına gelir, bu da başlangıç ​​zaman aşımına neden olur.

İkinci tahmin, hostname çözümlemesi ile ilgili olabileceğidir. Bu nedenle ana makine adını ilk kez çözmek çok uzun sürüyor (belki yayın yoluyla?), Ancak daha sonraki bağlantı girişimlerinde önbelleğe alınır. Ana bilgisayarı çözmek için ne kullanıyorsunuz? DNS'de mi? Bağlantı dizesini IP bağlantı noktası biçiminde olacak şekilde değiştirmeyi deneyin. yani 192.168.100.100.144

ipconfig /flushdnsBaşarılı bir bağlantı girişiminden sonra da çalışmayı deneyebilir ve aynı davranışı alıp almadığınızı görebilirsiniz. Çok tehlikeli bir çözüm, aramayı HOSTS dosyanıza koymaktır, ancak düzgün bir şekilde düzeltmeniz gerekir.


Zaten tüm veritabanlarında kapalı (0) olarak ayarlanmış. Ancak, sadece istemciden ilk deneme değil, istemci üzerinde çalışan her uygulama için ilk girişimdir (bu yüzden SQL Studio için 2. deneme bağlanır, çalışırken, ilk bağlantıda başarısız VS2010'u döndürürüm, ancak 2'de başarılı olur ... stüdyo zaten bağlı ve çalışıyor olsa bile).
SergioL

belki DNS / ana bilgisayar adı çözümlemesi ile ilgili? uzak giderse sql sunucusu IP / bağlantı noktasını kullanarak bağlamak ve görmek için bağlantı dizesini değiştirmeyi deneyin
Nick Kavadias

2

Karanlıkta göz bağı takan uzun bir atış gibi geliyor, ama yardımcı olabilir. Microsoft SQL Geliştirici forumlarında, aynı sorunun neye benzediğini ve olası bir düzeltmeyi açıklayan eski bir iş parçacığı var. Sunucusu Windows Server 2008 çalıştırıyor, ancak Win7 kurulumunuz için de alakalı olabilir.

İplik:

http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/58bd9c4d-0572-4567-8e32-82a7fd600022

Konudan:

Evet, bu sorunu çözdüm.

Windows sunucum 2008, SASL LDAP bağlarını reddedecek şekilde yapılandırıldı (bkz. 2886 uyarısı).

Sunucumu bu tür bağları reddetmeyecek şekilde yapılandırdığımdan, sql server 2008 bağlantıları doğru çalışıyor.

LDAP imzalama ayarlarını değiştirme hakkında bilgi için Microsoft KB 935834'e bakabilirsiniz (yeni bir kullanıcı olduğum için bağlantı kurulamıyor).

Umarım yardımcı olur!


0

Güvenlik duvarını devre dışı bırakın. Test ağı (ping). Sql sunucusuna ağ trafiğini sniff ( wireshark kullanın )


0

İlk kez VS veya SSMS ile bağlanmadan ve SQL Server'da neler olduğunu görmeden önce SQL Profiler'ı çalıştırmayı deneyebilir misiniz?

Ayrıca, herhangi bir şeyin günlüğe kaydedilip kaydedilmediğini görmek için olay günlüklerini kontrol ettiniz mi?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.