문제

여러 데이터베이스에 연결된 웹 응용 프로그램의 인스턴스가 하나 있습니다. 도메인 이름 (예 : www.shop1.com, www.shop2.com, ..)을 기반으로 엔티티 프레임 워크의 연결 문자열을 전환합니다.

shop1.com -> Database1

shop2.com -> Database2

shop3.com -> Database3
.

지금까지는 좋습니다.

SQL Server 세션 상태를 사용하고 있으며 데이터베이스를 데이터베이스를 전환하는 것처럼 세션 상태 데이터베이스를 전환하고 싶습니다.

shop1.com -> SessionStateDatabase1

shop2.com -> SessionStateDatabase2

shop3.com -> SessionStateDatabase3
.

에 대한 사전에 도움을 주셔서 감사합니다.


자세한 정보 이유를 알고 싶다면 :

실제로 나는 다중 임차를 구현하고 있습니다. 위의 설명은 세 사이트의 세 가지 사이트를 보여줍니다. 사실, 나는 50 세 이상을 가지고 있습니다. 그리고이 사이트의 수는 앞으로 몇 달 동안 자라게 될 것입니다. 현재 모든 사이트는 별도로 배포되어 패치 또는 업데이트를 롤아웃 할 때마다 50 개의 사이트를 모두 배포합니다. 이 방법으로 사이트를 유지하는 것은 악몽이되고 있습니다. 그래서 나는 그들의 사용법에 따라 한 인스턴스에 5 ~ 10 개의 사이트를두고 있으므로, 유지 보수가 적게 섭취하는 것에 대해 생각하고있었습니다.

도움이 되었습니까?

해결책

이와 같은 경우, 나는 항상 프레임 워크의 소스 코드를 보았습니다.먼저 구성이 세션 상태 연결 문자열을 저장하는 위치를 알아 내고 사용중인 위치를 찾습니다.Private 클래스 System.Web.SessionState.SqlSessionState.SqlSessionStateStore에는 Connection String을 읽는 메소드 OneTimeInit()가 있습니다.여기에서는 PartIniong에 대한 지원이 있다는 것을 알았습니다. http : // msdn.microsoft.com/en-us/library/aa478952.aspx .전에는 이것에 대해 들어 본 적이 없지만 원하는 일종의 기준을 기반으로 여러 데이터베이스에 세션 상태를 저장할 수 있습니다.+1 그런데 질문을 위해 멋진 기능입니다.또한 작동하지 않는 경우, 공개적으로 무시할 수있는 자신의 SessionStateStoreProviderBase 구현을 구현할 수 있습니다.

다른 팁

세션 상태 연결이 코드에서 관리되지 않으므로 전환 할 수 없습니다.그 응용 프로그램 수준 구성 및 너머의 코드 제어.그러나 이것을 필요로하지는 않아야합니다.단일 서버가있는 세 개의 도메인 모두에 대한 세션 상태를 관리 할 수 있습니다.유일한 우려는 사용자가 Shop1.com에서 shop2.com으로 이동하고 여전히 이전 세션을 유지할 수 있습니다.

는 실행을 고려하지 않을 핵심 이유가 있습니다 (동일한 코드를 가정하고있는 것, 동일한 코드) 3 개별 웹 응용 프로그램으로?

  • 하나의 오류가 세 사이트 모두를 모두 사용하지 않습니다
  • 세션 상태는 응용 프로그램
  • 에 의해 분리됩니다.
  • 는 성장이
  • 를 지시하는 것처럼 확장 능력 사이트를 다른 시스템에 할당 할 수 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top