ASP.NET 프로젝트에서 문제를 디버깅하는 동안 동료가 메서드가 정적 SqlConnection을 인스턴스화하는 것으로 나타났습니다.정적 SqlDBConnection이 스레드가 다른 스레드의 결과 집합을 가져올 수 있습니까?
여러 스레드가 동일한 SqlConnection을 동시에 사용하는 경우 한 스레드의 SqlCommand가 실수로 다른 스레드의 SqlCommand에서 결과 집합을 가져올 수 있습니까? 예를 들어
, 같은 ASP.NET 페이지에 두 개의 동시 요청을 고려 :요청 1 :
Dim Shared DbConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("DbConnectionString"))
Dim Query As SqlCommand = New SqlCommand("EXEC up_ShowReportInMenu 'abc',...", DbConnection)
...
Dim Reader As SqlDataReader = Query.ExecuteReader
요청 2 :
Dim Shared DbConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("DbConnectionString"))
Dim Query As SqlCommand = New SqlCommand("EXEC up_ShowReportInMenu 'def',...", DbConnection)
...
Dim Reader As SqlDataReader = Query.ExecuteReader
은 가능한 Reader에서인가요 요청 2가 요청 1의 SqlCommand에 의해 실행 된 쿼리에서 실수로 결과 집합에 액세스 할 수 있습니까?
P. 걱정하지 마십시오. 더 이상 정적이 아닌 것으로 바꿀 것입니다. 이것이 아마도 우리가 겪고있는 문제를 일으킬 수 있는지 궁금합니다. MSDN documentation for SqlConnection에 따르면
예, 가능합니다. – antlersoft
@antlersoft - 나를 가리킬 수있는 참조 사항이 있습니까? 첫 번째 Google 시도에서 확실한 것을 찾지 못했습니다. – mbeckish