3
使用SignalR 2.0.0將消息發送到服務器時,我收到以下錯誤:SignalR 2.0.0/JsonSerializerSettings:20的讀者的MAXDEPTH已超過
SignalR:讀者的MAXDEPTH已超過20個。
我使用統一的DI,並且試圖註冊JsonSerializer的一個實例:
GlobalHost.DependencyResolver.Register(
typeof (JsonSerializer),
() => JsonSerializer.Create(
new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver(),
MaxDepth = int.MaxValue
}));
我有事件試過這樣:
object IDependencyResolver.GetService(Type serviceType)
{
var result = _container.IsRegistered(serviceType) ? _container.Resolve(serviceType) : base.GetService(serviceType);
if (result != null && result.GetType().FullName.Equals("Newtonsoft.Json.JsonSerializer", StringComparison.OrdinalIgnoreCase))
{
((Newtonsoft.Json.JsonSerializer) result).MaxDepth = int.MaxValue;
}
return result;
}
的錯誤就不會消失。就好像SignalR只是使用JsonSerializer的另一個實例。