我有一个控制器,它上传文件,处理它,然后响应服务器。一切都在当地完美。如果测试文件很小,部署到服务器时一切都很完美。但是,一旦我尝试更大的测试文件(27MB),我会得到一些奇怪的结果。在处理和似乎正在发送OK之后(大约需要90秒),整个请求再次开始处理。我的客户端没有发送新请求,IIS日志只显示一个请求。我的代码简化为以下内容:
public async Task<IHttpActionResult> UploadNfsExcelFile()
{
// Using this STRICTLY to make sure the request is new each time for logging and debugging
Guid trackMe=Guid.NewGuid();
Logger.DebugFormat("Request coming in: {0}", trackMe);
string tempPath = Path.GetTempPath();
// This handles the persistence of the file name for processing
CustomMultipartFormDataStreamProvider streamProvider = new CustomMultipartFormDataStreamProvider(tempPath);
await Request.Content.ReadAsMultipartAsync(streamProvider);
foreach (string result in streamProvider.FileData.Select(entry => entry.LocalFileName))
{
/* File processing here */
}
Logger.DebugFormat("File processing done: {0}", trackMe);
return Ok(new
{
token: "This would be the response token"
});
}
我的日志文件显示&#34;请求进入:GUID&#34; log语句,然后是&#34;文件处理完成:GUID&#34;语句,然后立即显示我为一些过滤器(身份验证验证)设置的日志记录,然后是&#34;请求进入的集合:NEWGUID&#34;,&#34;文件处理完成:NEWGUID&#34;。此时,Chrome显示空响应。我的IIS日志只显示一个响应状态为 200
的请求修改
其他信息。仍然遇到这个问题,似乎是当文件处理花费超过60秒时,serer才会重新处理请求。
编辑2 现在在本地检查wireshark,似乎我的TCP正在重新发送请求(我正在获取&#34; [重新组装的PDU的TCP段]&#34;每60秒对应一次重新执行的Web api方法