插入数据库时​​出现.NET Core Error 502.3

时间:2017-03-10 12:41:39

标签: c# asp.net .net database powershell

我使用PowerShell脚本和.NET Core应用程序将大约50k行插入数据库(App 1(PowerShell)将数据发送到App 2(.NET Core),其中id插入数据)。

我正在使用实体框架,我已经在App 2中实现了一种机制,以便更快地插入,具体内容如下:Fastest Way of Inserting in Entity Framework

插入需要一些时间,但是在将所有数据正确插入数据库后,它会完成。查询运行大约4分钟。

但是,App 1返回通用的“HTTP错误502.3 - 错误的网关”。即使在将所有数据插入数据库之前,也会返回此响应。所以App 2只发回一个错误,但db操作继续,好像什么也没发生。

所以问题是,db插入工作正常,但我无法在App 1中知道,因为我每次都得到的是一般错误。

我尝试在两个应用程序中增加IIS超时,会话超时,读取IIS日志和NET Core生成的应用程序日志。没有成功。

如何让App 2等到查询完成后才能获得正确的响应?

.NET Core版本是1.0.0-preview2-003121

Powershell请求:

$post = Invoke-WebRequest -Uri ([string]$ApiUrl+$moduleApi) -Method Post -ContentType "application/json; charset=utf-8" -Body $json -Headers @{'ClientID' = "$clientID"; "Authorization"="Bearer $encryption"} -ErrorVariable errorMsg -UseBasicParsing -TimeoutSec 600

2 个答案:

答案 0 :(得分:5)

requestTimeout增加到超过四分钟的时间。

  

ASP.NET Core Module configuration reference

     

requestTimeout

     

可选的时间跨度属性。

     

指定ASP.NET核心模块等待来自监听%ASPNETCORE_PORT%的进程的响应的持续时间。

     

默认值为" 00:02:00"。

答案 1 :(得分:1)

将requestTimeout设置为0 - 这意味着它将基本上无限期地等待,直到数据库完成。客户端只是不想等待数据库完成,但即使抛出错误,数据库也会继续。