ASP.NET 2.0 응용 프로그램의 연결 문자열에 문제가 있습니다. ConnectionString 속성이 초기화되지 않았습니다. 임의로 그리고 간헐적으로 어떤 이유로도 발생하지 않는 문제가 있습니다.ASP.NET 연결 문자열
내 연결 문자열은 실제로 웹 서비스에서 오는 것입니다. 사용자 종류에 따라 다른 종류의 연결 문자열이 제공되기 때문입니다. 내가 지금까지했던 어떤
은 다음과 같이 진행됩니다
내가 마스터 페이지 (mstr.page
) 뒤에 해당 코드 (mstr.page.vb
)가 있습니다. 내 마스터 페이지에서
, 난에서 공공 공유 기능을 사용, 즉 지금
Session("ConnString") = "RetrievedConnectionString"
내 페이지 중 하나에, 우리가 page1.aspx.vb
말을하자, 처음에는 연결 문자열을 검색하고 세션 변수에 동일한 저장 클래스 (MyClass.vb
)와 내 page1.aspx.vb
에 그것을 사용합니다. 참조
일부 코드 : 나는 위의 코드를 배치 한
[MyClass.vb]
Imports System.Web
NameSpace ClassNameSpace
Public Class Admin
Protected Shared da as New DataAccess()
Public Shared Function MYFunction() as String
'Execute some sql statements here, using the DataAccess
stringToReturn = Ctype(da.ExecuteScalar("SQLCommand"), String)
Return stringToReturn
End Function
End Class
End NameSpace
[DataAccessClass.vb]
Public Class DataAccess()
Private m_ConStr As String = ""
Public Sub New()
m_ConStr = HttpContext.Current.Session("ConnString")
End Sub
'Some methods for SQL statement execution (ExecuteQuery, ExecuteScalar)
End Class
[Page1.aspx.vb]
Imports ClassNameSpace
Protected Sub Page_Load(....) Handles Me.Load
Dim strValue as String = Admin.MyFunction()
End Sub
당신에게 일을 진행하는 방법에 대한 몇 가지 거친 아이디어를 표시합니다.
데이터 액세스 클래스에서 연결 문자열이 값 (공백 또는 없음)을 잃어 버렸기 때문에 기본적으로 Admin.MyFunction()
기능이 실패합니다.
이것은 꽤 오랫동안 나를 괴롭혔습니다.
누군가가 올바른 방향으로이를 해결할 수 있기를 바랍니다. 기본적으로 웹 응용 프로그램을 방문하는 각 사용자가 검색하는 연결 문자열을 항상 유지하고 어디서나 사용할 수 있습니다. 세션 변수는 ASP.NET이 프로세스를 재활용 할 때 세션이 손실되므로 적합하지 않습니다.
그런데 웹 서비스에서 마스터 페이지를 통해 초기에 connectionstring을 검색하고 있습니다. 조건이 세션 변수가 손실되면 데이터 액세스 클래스에서 동일한 검색 함수를 배치하려고했지만 내 응용 프로그램이 재활용 프로세스 중에 웹 서비스에 연결할 수 없다고 생각합니다.
모든 조언을 주시면 감사하겠습니다. 이에
업데이트 :
나는 이렇게 내가 다시 원점으로 오전, 분명히 내가 사용하고 일부 DLL을 직렬화 할 수없는 세션 변수 사용하려고 및 주 서버에 모드를 설정할 수 있지만.
더 좋은 방법이 있나요?
내가 연결 문자열에 대한 값을 취득하기 전에 세션 변수를 확인 할. Null 또는 Nothing 또는 Empty이면 웹 서비스에서 연결 문자열을 다시 검색하려고 시도하지만 재활용이 진행 중이므로 웹 서비스에도 액세스 할 수 없습니다. – Batuta