WCF数据服务:保存大量更改时400个错误请求

本文关键字:400个 错误 请求 服务 数据 保存 WCF | 更新日期: 2023-09-27 18:15:56

我有一个客户端,它创建了数千个实体,并将其发送到服务,如下所示:

for(int i=0;i<99999999; i++)
{
    var contract = new Contract { Id = i, Name = "Ctr" + i.ToString() , ... }
    service.AddToContracts(contract);
}
svc.SaveChanges(SaveChangesOptions.Batch);

问题是,当我试图保存更改时,我得到以下异常:

"400 -错误请求"

WCF数据服务:保存大量更改时400个错误请求

WCF Data Services并不擅长编写大量数据。

大约一年前,当我的代码试图编写100,000个对象时,我遇到了麻烦…我修改了代码,以更小的块添加对象(失去了我的操作的事务性质),这是有效的。

您可以尝试增加MaxStringContentLengthMaxReceivedMessageSize的值。

不要只在最后保存为批处理,而是每添加100个合同或其他内容保存一次

您可以在您的服务上启用跟踪,以获得有关请求失败的确切错误以及原因是什么?如果有许多实体被传递到您的WCF服务,请尝试在您的web中增加以下设置。配置

<dataContractSerializer maxObjectsInGraph="1000000000"/> 

如果你能发布你的服务配置也会很容易。