[.net] 서버와 성공적으로 연결되었지만 사전 로그인 핸드 셰이크 중에 오류가 발생했습니다.

Local Environment에서 Production DB를 연결하려고 할 때 다음과 같은 오류가 발생합니다.

이전에 프로덕션 DB에 연결할 수 있었는데 갑자기 다음과 같은 오류가 발생합니다.

서버와 성공적으로 연결되었지만 사전 로그인 핸드 셰이크 중에 오류가 발생했습니다. (공급자 : TCP 공급자, 오류 : 0-핸들이 잘못되었습니다.)

Production DB의 연결 문자열이있는 로컬 PC에서 asp.net 웹 사이트를 실행하려고했는데, 다음은 로컬 환경에서 발생하는 오류에 대한 스택 추적입니다.

>    at MyWebsiteDAL.clsForumQuestion.SelectAll(Int32 CurrentPageIndex, Int32 PageSize) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsiteDAL\clsForumQuestion.cs:line 821
       at CodeConnect.Default.Page_Load(Object sender, EventArgs e) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsite\Default.aspx.cs:line 100
       at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
       at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
       at System.Web.UI.Control.OnLoad(EventArgs e)
       at System.Web.UI.Control.LoadRecursive()
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

여기서 무엇이 잘못되었을 지 아십니까?



답변

해결책

1) VS.Net 솔루션 청소

2) 프로젝트를 다시 빌드하십시오.

3) IIS 재설정

4) 프로젝트를 다시 실행하십시오.

기본적으로 내 문제가 해결되었지만 내 경우에는이 오류가 발생하지 않았고 갑자기 로컬 환경에서 위의 오류가 발생하기 시작하므로 그 트릭이 나를 위해 작동 할 수 있습니다.


답변

-작업 내용을 저장하고
-Visual Studio를 닫은 다음
-프로젝트를 다시 엽니 다.

항상 나를 위해 작동합니다.


답변

다음 명령을 실행하면 저에게 효과적이었습니다.

netsh Winsock reset

https://serverfault.com/a/487139/250527 에서 확인


답변

메모리를 많이 사용하는 프로세스를 실행할 때이 오류가 발생했습니다. 시스템에 메모리가 부족해지기 시작하자 이런 종류의 오류가 발생했습니다. RAM을 더 잘 사용하기 위해 알고리즘을 변경해야했습니다.

일부 스레드는이 예외를 던졌지 만 다른 스레드는 다음을 던졌습니다.

System.Data.SqlClient.SqlException (0x80131904) : 연결 시간 초과가 만료되었습니다. 사전 로그인 핸드 셰이크 승인을 사용하는 동안 시간 초과 기간이 경과했습니다. 사전 로그인 핸드 셰이크가 실패했거나 서버가 제 시간에 응답하지 못했기 때문일 수 있습니다. 이 서버에 연결을 시도하는 동안 소요 된 시간은 다음과 같습니다.-[사전 로그인] 초기화 = 43606; handshake = 560; —> System.ComponentModel.Win32Exception (0x80004005) : 대기 작업 시간이 초과되었습니다.

더 적은 RAM을 사용하여 실행할 수 있도록 시스템이 변경된 후 두 문제가 모두 사라졌습니다.


답변

나는 같은 문제가 있었고, 세션 데이터를 데이터베이스에 저장하고 있었고, 연결 문자열에는 Encrypt = True 가 있었는데 , SQL 클라이언트가 보안 (SSL) 모드에서 서버에 연결하도록 지시했다고 가정했습니다.


답변

몇 가지 사항을 확인할 수 있습니다.

  1. 프로덕션 서버는 원격 연결을 허용합니다. (특히 DBA가있는 경우 누군가이 기능을 끌 수 있음)

  2. 연결 문자열을 확인하십시오. 때때로 IP 주소 또는 서버 이름을 사용하는 경우이 오류가 발생합니다. 둘 다 시도하십시오.


답변

제 경우에는 다음과 같습니다.

Persist Security Info=True;

제거해야하는 연결 문자열에서. 일단 내가 더 이상 문제가 없었습니다.