localhost : 8080에 RavenDB 서비스 인스턴스가 설정되어 있으며 OAuth 플러그인을 사용하여 인증을위한 간단한 사용자 문서를 저장하고 있습니다. ID와 사용자 이메일에 대해 GUID를 사용하고 있습니다. 다음 코드는 사용자를 적절히 저장하는 데 적합합니다.RavenDB 서비스 세션. 결과가 반환되지 않는 쿼리
public AccountUserDocument CreateUser(RegisterModel model)
{
using (IDocumentSession session = DataDocumentStore.Instance.OpenSession())
{
Guid userId = Guid.NewGuid();
session.Store(new AccountUserDocument
{
Name = model.Email,
Id = String.Format("Raven/Users/{0}", userId),
AllowedDatabases = new[] { "*" },
Email = model.Email,
FirstName = model.FirstName,
LastName = model.LastName,
FacebookId = 0,
Expires = DateTime.Now.AddMonths(1),
AccessToken = string.Empty
}.SetPassword(model.Password));
session.SaveChanges();
return session.Load<AccountUserDocument>
(String.Format("Raven/Users/{0}", userId));
}
}
유효한 사용자 개체를 반환합니다. 그러나 전화 할 때
return session.Query<AccountUserDocument>()
.Customize(x => x.WaitForNonStaleResults())
.Where(x => x.Name == email)
.SingleOrDefault();
나는 아무것도 얻지 못한다. 1 주일 전에 일 했었지만 지금은 그렇지 않습니다. RavenDB studio를 열면 사용자와 이름이 정확히 어떻게 입력되어 있는지 볼 수 있습니다 (텍스트 필드에 복사하여 붙여 넣기도했습니다).
나는 중지하고 그래도 문제가 해결되기를 바랬 서비스를 다시 시작 시도했지만 그렇지 않았다.
누군가 내가 여기에서 벌어지고있는 일을 어떻게 디버깅할지 지시 할 수 있는지 궁금합니다. 누군가가 그것을 다운로드하는 경향이 경우 전체 코드 저장소는 여기
https://github.com/jamesamuir/MVC_Facebook_Auth
찾을 수 있습니다.
미리 감사드립니다.
제공하신 링크에서 관련 코드를 찾을 수 없습니다. 잘못된 링크? 또는 Repo가 업데이트되지 않았습니까? 프로덕션에서'WaitForNonStaleResults()'를 호출하지 않도록 조심하는 것을 제외하고는 즉시 아무 것도 보이지 않습니다. 또한 같은 세션에서'.Load()'를 호출하면 서버에서 실제로 얻지 못한다. 세션에 캐시됩니다. –
그래서 조금 파고 나면 간단한 문서를 서비스에 저장하고 잘 쿼리 할 수 있다는 것을 알게되었습니다. 그러나 인증 번들을 사용하면 이름으로 쿼리 할 때 null이 반환되는 것 같습니다. 이 동작을 보여주기위한 간단한 프로젝트를 만들었습니다. https://github.com/jamesamuir/RavenConnTest.git에서 찾을 수 있습니다 서버의 992 빌드 및 클라이언트 및 인증 번들 1.0.960을 사용하고 있습니다. 누메를 통해 설치된 – jamesamuir