WCF 서비스에 대한 지속적인 호출은 "각 소켓 주소(프로토콜/네트워크 주소/포트)의 한 번만 사용이 일반적으로 허용됩니다. 127.0.0.1:10111"을 반환합니다.

StackOverflow https://stackoverflow.com/questions/828864

  •  06-07-2019
  •  | 
  •  

문제

나는 작은 매시업 사이트를 개발했습니다.이 사이트는 커뮤니티로 완성되었습니다.따라서 사용자가 Community.aspx 페이지로 이동하면 가입 날짜, 댓글 수, 이름 등이 포함된 커뮤니티 구성원을 볼 수 있습니다.그리고 ofc 페이징도 마찬가지입니다.페이지당 사용자는 15명 정도입니다.이제 내 문제는 내 사이트에 "기존 사용자"와 "오픈 ID" 사용자 두 가지 유형의 사용자가 있다는 것입니다.Ofc에는 Asp에 2개의 역할이 정의되어 있습니다.순 멤버십, 즉 "OpenIDUser" 및 "User"입니다.

좋아요!!!

이제 사용자가 Community.aspx를 클릭하면 사용자 목록이 생성되고 처음 15명이 반환됩니다.하지만 이 사용자 목록을 만들려면 Roles.IsUserInRole("Username","RoleName") 이제 사용자 목록을 알파벳순으로 정렬하므로 어떤 사용자인지 확인합니다.OPEN ID로 시작하는 모든 OPEN ID 사용자를 조심해야 합니다.http://identifier.username 또는 무엇이든.그래서 저는 Asp .Net Membership Service Calls Membership.GetUser Roles 등을 많이 만듭니다.

이제 일반적으로 이것은 문제가 되지 않지만 MemberShip 서비스를 WCF에 통합했습니다.그 이유는이 커뮤니티에서 많은 하위 도메인 (각 "사이트"에 대한 하위 도메인)을 갖게되기 때문에이 모든 것에 대해 1 개의 데이터베이스 만 사용하고 싶기 때문입니다.

그래서 저는 일반적으로 회원 수가 500명 이상이면 100%라고 생각합니다.그러나 WCF에서 .NET 멤버십을 가져오고 모든 단일 Membership.Whatever 메서드를 WCF 메서드로 변환하면 바로 가능합니다.페이지가 로드될 때마다 500개 이상의 WCF 호출이 발생합니다.

그래서 오류가 발생하는 것 같아요.

도움이 되었습니까?

해결책

이것은 질문이 아니므로 답변이 아니라 의견입니다.

각 하위 도메인을 별도의 멤버십 신청으로 보는 것이 좋습니다.이를 통해 여러 사이트가 동일한 회원 데이터베이스를 공유할 수 있지만 서로의 회원을 방해하지는 않습니다.공급자 구성의 일부로 애플리케이션 이름을 설정할 수 있습니다.

다른 팁

클라이언트를 닫으시는 건가요?IIRC 저도 비슷한 문제가 있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top