无法将反序列化的JSON对象反序列化为\'Raven.Json.Linq.RavenJObject\'类型

问题描述

| 我已经尝试使用Raven.Client.Lightweight-3.5版本1.0.0.0构建.NET 3.5和4。 运行以下代码,得到上述错误: 有什么想法吗?
public class Test
    {
        public string Id { get; set; }
        public string Name { get; set; }
    }

    class Program
    {

        static void Main(string[] args)
        {
            var store = new DocumentStore { Url = \"http://localhost:8080\" };
            store.Initialize();

            using (var session = store.OpenSession())
            {
                var test = new Test
                {
                    Name = \"test\"
                };
                session.Store(test);
                session.SaveChanges();               
            }            
        }
    }
异常跟踪:
Newtonsoft.Json.JsonSerializationException was unhandled
  Message=Cannot deserialize JSON object into type \'Raven.Json.Linq.RavenJObject\'.
  Source=Newtonsoft.Json.Net35
  StackTrace:
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader,Type objectType,JsonContract contract,JsonProperty member,Object existingValue) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 417
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader,Object existingValue) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 223
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueProperty(JsonReader reader,JsonProperty property,Object target,Boolean gottenCurrentValue,Object currentValue) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 198
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property,JsonReader reader,Object target) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 552
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject,JsonObjectContract contract,String id) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 1005
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateAndPopulateObject(JsonReader reader,String id) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 842
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader,Object existingValue) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 396
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader,Object existingValue) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 223
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueNonProperty(JsonReader reader,JsonContract contract) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 208
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IWrappedCollection wrappedList,String reference,JsonArrayContract contract) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 717
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.<>c__displayClass1.<CreateAndPopulateList>b__0(IList l,Boolean istemporaryListReference) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 663
       at Newtonsoft.Json.Utilities.CollectionUtils.CreateAndPopulateList(Type listType,Action`2 populateList) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Utilities\\CollectionUtils.cs:line 544
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateAndPopulateList(JsonReader reader,JsonArrayContract contract) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 651
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader,Object existingValue,String reference) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 446
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader,Object existingValue) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 225
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueNonProperty(JsonReader reader,JsonContract contract) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 208
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader,Type objectType) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\Serialization\\JsonSerializerInternalReader.cs:line 120
       at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader,Type objectType) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\JsonSerializer.cs:line 421
       at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader,Type objectType) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\JsonSerializer.cs:line 413
       at Newtonsoft.Json.JsonConvert.DeserializeObject(String value,Type type,JsonSerializerSettings settings) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\JsonConvert.cs:line 721
       at Newtonsoft.Json.JsonConvert.DeserializeObject(String value,JsonConverter[] converters) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\JsonConvert.cs:line 699
       at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value,JsonConverter[] converters) in d:\\Development\\Releases\\Json\\Working\\Src\\Newtonsoft.Json\\JsonConvert.cs:line 668
       at Raven.Client.Connection.ServerClient.DirectBatch(IEnumerable`1 commandDatas,String operationUrl) in c:\\Builds\\raven\\Raven.Client.Lightweight\\Connection\\ServerClient.cs:line 803
       at Raven.Client.Connection.ServerClient.<>c__displayClass32.<Batch>b__31(String u) in c:\\Builds\\raven\\Raven.Client.Lightweight\\Connection\\ServerClient.cs:line 778
       at Raven.Client.Connection.ServerClient.TryOperation[T](Func`2 operation,String operationUrl,Boolean avoidThrowing,T& result) in c:\\Builds\\raven\\Raven.Client.Lightweight\\Connection\\ServerClient.cs:line 163
       at Raven.Client.Connection.ServerClient.ExecuteWithReplication[T](String method,Func`2 operation) in c:\\Builds\\raven\\Raven.Client.Lightweight\\Connection\\ServerClient.cs:line 133
       at Raven.Client.Connection.ServerClient.Batch(IEnumerable`1 commandDatas) in c:\\Builds\\raven\\Raven.Client.Lightweight\\Connection\\ServerClient.cs:line 778
       at Raven.Client.Document.DocumentSession.SaveChanges() in c:\\Builds\\raven\\Raven.Client.Lightweight\\Document\\DocumentSession.cs:line 344
       at RavenHelloWorld.Program.Main(String[] args) in C:\\development\\Samples\\RavenHelloWorld\\RavenHelloWorld\\Program.cs:line 30
       at System.AppDomain._nExecuteAssembly(Assembly assembly,String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
    

解决方法

        我曾在同一时间遇到过同样的问题,我认为它与内部版本371中的默认凭据有关。 尝试在服务器配置中将Raven / AnonymousAccess设置为All,看看它是否消失了。