ASP.NET Web API请求未达到控制器操作

本文关键字:未达到 控制器 操作 请求 API NET Web ASP | 更新日期: 2023-09-27 17:58:30

我在使用HttpClient的PostAsJsonAsync方法将"大"对象发布到web api时遇到问题。这些对象包含一个base64编码的图像文件。

在一段时间后,似乎是客户端的超时设置,异常

'任务已取消。'

由CCD_ 2抛出。超时时间已经设置得很高(10分钟)。这种情况只发生在大于~2MB的文件中。任何小一点的都可以。我知道请求甚至没有到达控制器方法中的第一行代码,因为第一行是日志行,日志是空的。服务器事件查看器中没有异常。

很难确定这个问题,因为当我在本地IIS上部署web api时,控制器工作得很好。但当我在Azure虚拟机上部署它时,它只适用于小文件。web.config文件完全相同。

CCD_ 3已经被设置得足够高。

<httpRuntime targetFramework="4.5.2" maxRequestLength="1048576" />

我没有在Azure虚拟机中托管IIS,而是尝试将API部署为应用程序服务。同样的事情也发生在那里。

ASP.NET Web API请求未达到控制器操作

您也可以尝试设置此限制:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="1073741824" />
       </requestFiltering>
    </security>
</system.webServer>

请注意,与maxRequestLength参数相反,此值以字节为单位。