最近,在其中一个Web应用程序中,我们在尝试使用JSON.NET序列化对象时开始获取VerificationException。
我知道JSON.NET启用了CLR验证,因为它使用[assembly: AllowPartiallyTrustedCallers]
,但是所有下面的代码示例都会抛出相同的异常
1) JsonConvert.SerializeObject(log);
2) var settings = new Newtonsoft.Json.JsonSerializerSettings
{
Formatting = Newtonsoft.Json.Formatting.Indented
};
3) var traceWriter = new MemoryTraceWriter();
它发生在特定的机器(A)而不是另一个(B),低于我为解决问题所做的工作: -
.NET 4.7.1
JSON.NET 10.0.3
IIS 7.5
Windows Server 2008 R2
修改1 ToString输出
System.Security.VerificationException: Operation could destabilize the runtime.
at Newtonsoft.Json.JsonConvert.SerializeObject(Object value)
编辑2 从DebugDiag调用堆栈
KERNELBASE!RaiseException+3d
MSVCR120_CLR0400!CxxThrowException+c3
clr!NGenCreateNGenWorker+d33c
clr!TranslateSecurityAttributes+82981
[[HelperMethodFrame]]
Newtonsoft.Json.JsonConvert.SerializeObject(System.Object)+15
异常的原因可能是什么?