我遇到了类似的复合错误,需要两种解决方案。就我而言,技术堆栈是 MVC/ASP.NET/IIS/JQuery。服务器端因 500 错误而失败,这是在控制器处理请求之前发生的,这使得服务器端的调试变得困难。
以下客户端调试使我能够确定服务器错误
在$.ajax错误回调中,向控制台显示错误详情
error: (error) => {
console.log(JSON.stringify(error));
}
这至少使我能够查看初始服务器错误
“JSON 请求太大,无法序列化”
这已在客户端 web.config 中解决
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
但是,请求仍然失败。但是这次出现了一个不同的错误,我现在可以在服务器端进行调试
“请求的实体太大”
这是通过将以下内容添加到服务 web.config 来解决的
<configuration>
…
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
配置值可能需要进一步调整,但至少它解决了由 ajax post 引起的服务器错误。