오늘 우리는 Couchbase ASP.NET 통합 패키지의 베타 3을 NuGet에 푸시했습니다! 공식적으로 Couchbase 캐싱 및 세션 공급자로 알려진 이 프로젝트에는 Couchbase Server와 Microsoft ASP.NET 간의 통합을 위한 다양한 API(캐싱/세션 공급자, ID 등)의 구현이 포함되어 있거나 향후 포함될 예정입니다. 최종적으로 .NET Core에 대한 지원도 추가될 예정이지만, 이는 .NET SDK에서 이를 지원한 후 시간이 좀 더 지난 후입니다.
획기적인 변화
먼저, 안타깝게도 베타 2와 베타 3 사이에는 몇 가지 획기적인 변경 사항이 있습니다. 이전 베타에서는 클러스터 도우미 객체를 사용하여 세션 공급자가 사용하는 클러스터 및 버킷 객체의 범위/수명을 관리할 수 있습니다. 이것은 잘 작동했지만, ClusterHelper를 사용하면 애플리케이션당 하나의 Couchbase Server 클러스터를 여는 것으로 제한됩니다. 대부분의 시나리오에서는 괜찮습니다. 클러스터에는 여러 개의 버킷이 있을 수 있으며 다음을 통해 열 수 있습니다. GetBucket. 그러나 경우에 따라 여러 클러스터에서 버킷을 여는 애플리케이션이 있을 수 있습니다. 베타 3에서는 클러스터와 버킷을 캐싱 또는 세션 공급자의 인스턴스로 열고 범위를 지정하는 방식으로 돌아갔습니다. 즉, 캐싱 및 세션 공급자 인스턴스에 대해 서로 다른 클러스터에서 버킷을 구성할 수 있습니다.
이를 위해 클러스터 헬퍼가 제거되고(Global.asax 또는 Setup.cs 클래스에서 초기화해야 함) 구성이 다시 팩터링되었습니다. 따라서 안타깝게도 베타 2를 대체하는 것은 아닙니다. "새로운" 구성 방법을 보려면 아래의 "사용 방법" 섹션을 참조하세요.
베타 3에는 무엇이 있나요?
이슈는 다음에서 추적됩니다. Jira - 버그를 발견하거나 기능 요청을 하고 싶다면 그곳에서 할 수 있습니다. 다음은 티켓 목록입니다. 해결됨 베타 3의 경우
버그
- [CBASP-1] - 카우치베이스 세션 상태 공급자가 웹폼 프로젝트에서 작동하지 않습니다.
- [CBASP-14] - 주석이 오류를 발생시켜야 한다고 말할 때 AspNet이 오류를 발생시키지 않음
- [CBASP-16] - AspNet이 오류 조건에서 데이터를 참조하려고 시도합니다.
- [CBASP-21] - ASP.NET 세션 관리와 System.ArgumentNullException
개선 사항
- [CBASP-17] - NuGet 패키지를 Couchbase.NetClient 2.2.5로 업데이트합니다.
- [CBASP-18] - Couchbase.AspNet.UnitTests 프로젝트 추가
- [CBASP-19] - Common.Logging 및 JSON.NET에 대한 종속성 업데이트
- [CBASP-23] - 초기화 및 설정/구성 리팩터링
사용 방법
이미 두 개의 노드와 멤캐시드 버킷이 있는 Couchbase 클러스터를 생성했다고 가정하고 있습니다. "my-memcached-bucket"
. 이 작업을 수행하지 않은 경우, 지금 가서 이렇게 하세요..
마지막 단계에서 Couchbase SDK에 대한 구성 설정이 완료되면 다음 세 가지 작업을 수행해야 합니다:
- 설치 Couchbase ASP.NET 통합 패키지에서 NuGet
- 클러스터를 사용하도록 Couchbase .NET SDK 구성하기
- Couchbase ASP.NET 통합 패키지의 사용자 지정 세션 공급자를 사용하도록 ASP.NET 프로젝트를 구성하고 사용자 지정 세션 공급자가
카우치베이스클라이언트 섹션
에서 정의한 1단계.
1. NuGet에서 Couchbase ASP.NET 통합 패키지를 설치합니다.
Visual Studio를 사용하여 ASP.NET MVC 프로젝트를 만들거나 엽니다. 메인 메뉴 모음에서 "도구", "NuGet 패키지 관리자", "패키지 관리자 콘솔"을 차례로 클릭합니다. 그런 다음 다음을 입력합니다:
1 2 |
설치-패키지 CouchbaseAspNet -사전 |
이렇게 하면 Couchbase ASP.NET 통합 패키지
와 함께 필요한 모든 종속성(Couchbase .NET SDK 등)이 필요합니다.
2. Couchbase .NET SDK 구성하기
캐싱 및 세션 공급자는 App.Config 또는 Web.Config를 통해 구성해야 합니다(JSON 구성은 아직 .NET Core 1.0이 지원되지 않지만 곧 지원될 예정입니다!). 가장 먼저 해야 할 일은 클러스터 및 버킷 객체를 초기화하기 위한 구성 지원을 추가하는 것입니다. 이 작업은 카우치베이스 SDK 구성 API 이렇게요:
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
... |
이 경우 우리는 카우치베이스클라이언트 섹션
호출 "couchbase-session"
을 추가한 다음 실제 구성 섹션과 해당 구성에 사용할 클러스터
그리고 버킷
객체를 생성할 수 있습니다. 이 경우 두 개의 URI가 있습니다. http://a-couchbase-server1:8091/
그리고 http://a-couchbase-server2:8091/
를 부트스트랩하는 데 사용할 것입니다. 또한 멤캐시드 버킷을 여는 버킷 구성이 정의되어 있습니다. "my-memcached-bucket"
.
3. 사용자 지정 세션 공급자 구성
Web.Config에 다음을 삽입합니다:
1 2 3 4 5 6 |
이렇게 하면 ASP.NET에 custom 세션 공급자로부터 오는 Couchbase ASP.NET 통합
프로젝트 대신 기본 인메모리 프로젝트입니다. 또한 매우 중요 사용자 지정 공급자의 이름이 동일한 이름("couchbase-session"
)를 카우치베이스 구성 섹션
의 값과 앞서 정의한 버킷
요소는 이름("my-memcached-bucket"
)의 버킷을 사용할 수 있습니다.
이 작업이 완료되면 애플리케이션을 실행하면 기본 인메모리 세션 저장소를 사용하는 대신 ASP.NET이 확장성이 뛰어난 분산형 Couchbase 서버를 사용합니다!
ASP.Net 애플리케이션이 여러 개 있는 경우 각각에 대해 별도의 버킷을 만들어야 하나요, 아니면 모두 동일한 버킷을 사용할 수 있나요?
여러 애플리케이션에 동일한 버킷을 사용할 수 있습니다.
안녕하세요이 코드는 카우치베이스를 카우치베이스 서버 5.0.1로 업그레이드 할 때까지 나를 위해 잘 작동합니다.
내가 놓치고 있는 것
doronps
CB Server 5.0에서 Couchbase.Extensions를 사용하는 방법은 여기를 참조하세요: https://github.com/couchbaselabs/couchbase.extensions
그래도 문제가 해결되지 않는다면 forums.couchbase.com에 글을 올리면 더 많은 도움을 받을 수 있습니다!
-Jeff
Jeff, 아직 암흑기에 갇혀 있는 사람들을 위해 ASP.NET 통합이 언제 CB Server 5와 함께 작동하도록 업데이트될 것으로 예상하나요?
안녕하세요 ash614 - 안녕하세요.
곧 CB 서버 5.0 이상을 지원하는 ASP.NET 통합 3.0 베타를 출시할 예정입니다: https://github.com/couchbaselabs/couchbase-aspnet/tree/3.0
부트스트랩이 (더 나은 방향으로) 상당히 변경되었기 때문에 (따라서 3.0으로) 교체되는 것은 아니라는 점에 유의하세요. 해당 내용은 다음 주 정도에 NuGet에 업데이트될 예정입니다.
-Jeff
안녕하세요 Jeff,
계속 귀찮게 해서 죄송하지만 3.0 베타 버전이 곧 출시될 예정인가요?
-애쉬
안녕 애쉬 - 안녕하세요.
3.0 베타 버전이 NuGet에 출시되었습니다: https://www.nuget.org/packages/CouchbaseAspNet/3.0.0-beta
아직 베타 버전이므로 변경 사항이 있을 수 있습니다. forums.couchbase.com 또는 https://github.com/couchbaselabs/couchbase-aspnet/issues 에 문의하세요.
감사합니다,
Jeff