Objawy
Podczas próby połączenia się z programem Microsoft SQL Server 2012 za pośrednictwem odbiornika grupy dostępności AlwaysOn z aplikacji klienckiej może zostać wyświetlony komunikat o błędzie limitu czasu logowania.
Na przykład po użyciu polecenia SqlCmd może zostać wyświetlony następujący komunikat o błędzie:
Uwaga
SQLCMD: Błąd: Microsoft SQL Native Client: Upłynęło limit czasu logowania.
Uwaga
[Microsoft][SQL Server Native Client 11.0]Nie można ukończyć procesu logowania z powodu opóźnienia w otwarciu połączenia z serwerem
Podczas korzystania z aplikacji opartej na programie Microsoft .NET Framework 3.5 lub Microsoft .NET Framework 4.0 z dostawcą danych programu .Net Framework dla programu SQL Server może zostać wyświetlony następujący komunikat o błędzie:
Uwaga
Upłynął limit czasu. Limit czasu, który upłynął przed zakończeniem operacji lub serwer nie odpowiada.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean& marsCapable)
at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds.. ctor(tożsamość DbConnectionPoolIdentity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
Uwaga Jeśli wydłużysz limit czasu logowania do 30 sekund, aplikacja kliencka potrzebuje około 20 sekund, aby pomyślnie nawiązać połączenie.
Te objawy występują, gdy są spełnione następujące warunki:
- Grupa dostępności jest zdefiniowana w wielu podsieciach.
- Podczas nawiązywania połączenia został określony parametr MultiSubnetFailover.
- Aktywny sterownik filtru interfejsu TDI (Transport Driver Interface) jest zainstalowany na stacji roboczej aplikacji klienckiej.
Przyczyna
Ten problem występuje, ponieważ sterownik Tdx.sys nie obsługuje poprawnie funkcji Closesocket(), gdy funkcja jest wywoływana w trakcie uzgadniania protokołu TCP/IP.
Rozwiązanie
Informacje o poprawkach
Obsługiwana poprawka jest dostępna w firmie Microsoft. Jednak ta poprawka ma na celu rozwiązanie tylko problemu opisanego w tym artykule. Tę poprawkę należy stosować tylko w systemach, w których występuje problem opisany w tym artykule. Ta poprawka może zostać poddana dodatkowym testom. Dlatego jeśli ten problem nie dotyczy użytkownika, zaleca się zaczekać na następną aktualizację oprogramowania zawierającą tę poprawkę.
Jeśli poprawka jest dostępna do pobrania, u góry tego artykułu z bazy wiedzy znajduje się sekcja "Dostępne do pobrania poprawki". Jeśli ta sekcja nie zostanie wyświetlona, skontaktuj się z działem pomocy technicznej i pomocy technicznej firmy Microsoft w celu uzyskania poprawki.
Uwaga W przypadku wystąpienia dodatkowych problemów lub konieczności rozwiązania problemu może być konieczne utworzenie osobnego zgłoszenia serwisowego. Normalne koszty pomocy technicznej będą dotyczyć dodatkowych pytań oraz problemów, które nie kwalifikują się do objęcia tą poprawką. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta i pomocy technicznej firmy Microsoft lub utworzyć oddzielne żądanie obsługi, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://support.microsoft.com/contactus/?ws=support Uwaga: W formularzu "Dostępne do pobrania poprawki" są wyświetlane języki, dla których poprawka jest dostępna. Jeśli nie widzisz odpowiedniego języka, oznacza to, że nie ma dla niego dostępnej poprawki.
Wymagania wstępne
Aby zastosować tę poprawkę, musisz mieć zainstalowany system Windows 7 z dodatkiem SP1 lub Windows Server 2008 R2 z dodatkiem SP1.
Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania dodatku Service Pack dla systemu Windows 7 lub Windows Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
976932 Informacje o dodatkach Service Pack 1 dla systemów Windows 7 i Windows Server 2008 R2
Informacje na temat rejestru
Aby zastosować tę poprawkę, nie trzeba wprowadzać żadnych zmian w rejestrze.
Wymóg ponownego uruchomienia
Po zastosowaniu tej poprawki należy ponownie uruchomić komputer.
Informacje o zastępowaniu poprawek
Ta poprawka nie zastępuje wcześniej wydanej poprawki.
Informacje o plikach
Globalna wersja tej poprawki instaluje pliki o atrybutach wymienionych w poniższych tabelach. Daty i godziny tych plików są wyświetlane według uniwersalnego czasu koordynowanego (UTC). Daty i godziny dla tych plików na komputerze lokalnym są wyświetlane w formacie czasu lokalnego, wraz z bieżącą różnicą czasu letniego. Ponadto daty i godziny mogą się zmieniać, gdy wykonujesz określone operacje na plikach.
Informacje o plikach systemów Windows 7 i Windows Server 2008 R2 — uwagi
Ważne poprawki systemu Windows 7 i poprawki systemu Windows Server 2008 R2 znajdują się w tych samych pakietach. Jednak poprawki na stronie Żądanie poprawki są wymienione w obu systemach operacyjnych. Aby zażądać pakietu poprawki, który ma zastosowanie do jednego lub obu systemów operacyjnych, wybierz poprawkę wymienioną w obszarze "Windows 7/Windows Server 2008 R2" na stronie. Aby ustalić, jakiego systemu operacyjnego dotyczy każda poprawka, należy zawsze zapoznać się z sekcją "Dotyczy" w artykułach.
Pliki odnoszące się do określonego produktu, SR_Level (RTM, SPn) i gałęzi usługi (LDR, GDR) można zidentyfikować, sprawdzając numery wersji plików przedstawione w poniższej tabeli:
Wersja Produkt Punkt kontrolny Oddział usługi 6.1.760
1.22xxxWindows 7 i Windows Server 2008 z dodatkiem R2 SP1 Rekord LDR Pliki MANIFEST (.manifest) i MUM (.mum) instalowane w poszczególnych środowiskach są wymienione oddzielnie w sekcji "Dodatkowe informacje o plikach dla systemów Windows 7 i Windows Server 2008 R2". Pliki MUM i MANIFEST oraz skojarzone pliki katalogu zabezpieczeń (cat) są niezwykle ważne dla utrzymania stanu zaktualizowanego składnika. Pliki wykazu zabezpieczeń, których nie wymieniono atrybutów, są podpisywane przy użyciu podpisu cyfrowego firmy Microsoft.
Dla wszystkich obsługiwanych wersji systemu Windows 7 opartych na architekturze x86
| Nazwa pliku | Tdx.sys |
|---|---|
| Wersja pliku | 6.1.7601.22382 |
| Rozmiar pliku | 74,752 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 09:17 |
| Platforma | x86 |
Dla wszystkich obsługiwanych wersji systemów Windows 7 i Windows Server 2008 R2 dla komputerów z procesorami x64
| Nazwa pliku | Tdx.sys |
|---|---|
| Wersja pliku | 6.1.7601.22382 |
| Rozmiar pliku | 118,272 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 09:35 |
| Platforma | x64 |
Wszystkie obsługiwane wersje systemu Windows Server 2008 R2 dla komputerów z systemem IA-64
| Nazwa pliku | Tdx.sys |
|---|---|
| Wersja pliku | 6.1.7601.22382 |
| Rozmiar pliku | 236,544 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 09:03 |
| Platforma | IA-64 |
Obejście
Aby obejść ten problem, użyj jednej z następujących metod:
- Zwiększ limit czasu logowania aplikacji do 30 sekund.
- Funkcja TDI jest przestarzała w systemach Windows Vista, Windows Server 2008 i nowszych wersjach systemu Windows. Zamiast tego można użyć sterowników opartych na platformie filtrowania systemu Windows (WFP). Skontaktuj się z dostawcą zainstalowanego sterownika filtru TDI, aby uzyskać informacje na temat uaktualnień produktu, które implementują nową platformę filtrowania systemu Windows. Uaktualnij produkt, jeśli jest to możliwe.
- Zastąp TDI porównywalnym produktem, w którym zastosowano platformę filtrowania systemu Windows.
- Ustaw właściwość RegisterAllProvidersIP na 0 dla zasobu odbiornika grupy dostępności w klastrze systemu Windows. Gdy właściwość RegisterAllProvidersIP ma ustawioną wartość 0, nie trzeba określać parametru MultiSubnetFailover. Aby uzyskać więcej informacji o tym obejściu, odwiedź następującą witrynę MSDN w sieci Web:
Tworzenie lub konfigurowanie odbiornika grupy dostępności (programu SQL Server)
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Więcej informacji
Aby uzyskać więcej informacji dotyczących terminologii związanej z aktualizacjami oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft
Produkty innych firm omawiane w tym artykule są tworzone przez firmy niezależne od firmy Microsoft. Firma Microsoft nie udziela jakichkolwiek gwarancji, dorozumianych ani innych, co do wydajności i niezawodności tych produktów.
Dodatkowe informacje o plikach
Dodatkowe informacje o plikach dla systemów Windows 7 i Windows Server 2008 R2
Dodatkowe pliki dla wszystkich obsługiwanych wersji systemu Windows 7 dla komputerów z procesorami x86
| Nazwa pliku | X86_2c94e745aaec3431931d51020305e2b9_31bf3856ad364e35_6.1.7601.22382_none_6fcc2f6025233efa.manifest |
|---|---|
| Wersja pliku | Nie dotyczy |
| Rozmiar pliku | 702 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 17:26 |
| Platforma | Nie dotyczy |
| Nazwa pliku | X86_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_ec81028053b014a1.manifest |
| Wersja pliku | Nie dotyczy |
| Rozmiar pliku | 2,924 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 11:37 |
| Platforma | Nie dotyczy |
Dodatkowe pliki dla wszystkich obsługiwanych wersji systemów Windows 7 i Windows Server 2008 R2 dla komputerów z procesorami x64
| Nazwa pliku | Amd64_fe6f131c914351fbcf6c3bc973329866_31bf3856ad364e35_6.1.7601.22382_none_a8b3dc126d52c78a.manifest |
|---|---|
| Wersja pliku | Nie dotyczy |
| Rozmiar pliku | 706 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 17:26 |
| Platforma | Nie dotyczy |
| Nazwa pliku | Amd64_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_489f9e040c0d85d7.manifest |
| Wersja pliku | Nie dotyczy |
| Rozmiar pliku | 2,926 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 12:33 |
| Platforma | Nie dotyczy |
Dodatkowe pliki dla wszystkich obsługiwanych wersji systemu Windows Server 2008 R2 opartych na architekturze IA-64
| Nazwa pliku | Ia64_649247023b89e8d48b1a96bffe9b85cd_31bf3856ad364e35_6.1.7601.22382_none_a9a13e5e5a562b37.manifest |
|---|---|
| Wersja pliku | Nie dotyczy |
| Rozmiar pliku | 704 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 17:26 |
| Platforma | Nie dotyczy |
| Nazwa pliku | Ia64_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_ec82a67653ae1d9d.manifest |
| Wersja pliku | Nie dotyczy |
| Rozmiar pliku | 2,925 |
| Data (UTC) | 12-lipiec-2013 |
| Godzina (UTC) | 11:35 |
| Platforma | Nie dotyczy |