我有一個在localhost:8080上設置的RavenDB服務實例,並且使用OAuth插件來存儲簡單的用戶文檔進行身份驗證。我使用的是id和用戶電子郵件的名稱。以下代碼正常運行以存儲用戶RavenDB服務Session.Query不返回結果
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();
我什麼也沒得到。它一週前一直在工作,但現在它沒有。如果我打開RavenDB工作室,我可以看到用戶和名稱正是我如何進入它(我甚至複製並粘貼到文本字段)。
我曾嘗試停止和重新啓動服務希望能解決這個問題,但事實並非如此。
我想知道如果有人能指出我如何調試這裏發生的事情。完整的代碼庫可以在這裏
https://github.com/jamesamuir/MVC_Facebook_Auth
發現,如果有人傾向於下載。
在此先感謝。
在您提供的鏈接中找不到任何相關的代碼。錯誤的鏈接?或者你的回購沒有更新?我沒有看到任何錯誤,除非要小心,不要在生產中調用'WaitForNonStaleResults()'。另外,通過在同一個會話中調用'.Load()',你並不真正從服務器獲取它。它會緩存在會話中。 –
因此,在挖掘了一下後,我發現我可以將一個簡單的文檔保存到服務中並查詢它。但是,當我使用Authentication Bundle時,它似乎在我按名稱查詢時返回null。我創建了一個簡單的項目來演示這種行爲。它可以在https://github.com/jamesamuir/RavenConnTest.git 找到我使用的服務器的992構建 和1.0.960的客戶端和身份驗證包,通過nuget安裝 – jamesamuir