TransactionScope
내에서 SqlConnection
을 사용하려고했습니다. 우리는 사이트를 구축하고이 데이터베이스 호출을 할 때 우리는 오류로 실행 : 참여TransactionScope 오류 내에서 SqlConnection 열기
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
오류 라인 cnn.Open()
에 발생합니다.
using (var scope = new TransactionScope())
using (var cnn = new SqlConnection(connectionString))
{
cnn.Open();
int result = cnn.QuerySingle<int>("SELECT 1");
Console.WriteLine(result);
}
우리는 무엇이 잘못된 것인지 알아 내기 위해 콘솔 응용 프로그램을 작성하고 '진정한'에서 '거짓'에서 우리의 연결 문자열 키워드 '풀링'을 변경하여이 반환 성공적으로 콘솔 응용 프로그램에서 실행 할 수 있다는 것을 발견 우리 결과.
이전과 같은 오류가 발생하여 사이트 연결 문자열이 변경되었습니다.
이 코드가 작동하지 않는 이유가 있습니까?
을 풀링입니까? 두 번째로 풀링과 같은 냄새가 나면서 동일한 물리적 연결이 여러 논리 연결에 재사용됩니다. 이것은 비 결정적이며 언제든지 중단 될 수 있습니다. 더 완벽한 코드를 게시하십시오. 아마도 여러 개의 쿼리 또는 여러 개의 열기가있을 수 있습니다. – usr
Azure Portal에서 제공 한 연결 문자열에서 풀링이 해제되었습니다. 우리는 이것을 켜 보았고 내 로컬 컴퓨터에서 작동했지만 웹 응용 프로그램에 배포 할 때는 작동하지 않았습니다. 그것은 하나 또는 여러 개의 쿼리 또는 연결이있을 때 아무런 차이가 없습니다. 첫 번째 Open에서 실패합니다. – Cassius40k