Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how set the request timeout in asp .net core 3.1

  • From the Visual Studio select Create a new project. Select ASP.NET Core 3.1
  • Publish and Host in IIS
  • Increase upload file size this code :
public void ConfigureServices(IServiceCollection services)
{
    services.Configure<IISServerOptions>(options =>
    {
        options.MaxRequestBodySize = 314572800;
    });

    services.AddControllersWithViews();
}

and web config:

<security>
    <requestFiltering>
      <!-- This will handle requests up to 300MB -->
      <requestLimits maxAllowedContentLength="314572800" />
    </requestFiltering>
</security>

The above applies correctly but the default timeout is 2 min

How can I increase the timeout in ASP.NET Core 3.1 app hosted in IIS?

Note: my web.config

<aspNetCore processPath="dotnet" arguments=".\AspCoreTestFileUpload.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

for requestTimeout : Doesn't apply to in-process hosting. For in-process hosting, the module waits for the app to process the request.

https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-3.1#attributes-of-the-aspnetcore-element

I have to use inprocess hostingModel

like image 970
sbr Avatar asked Jun 10 '20 06:06

sbr


People also ask

How do I set request timeout in .NET core?

But according to the documentation you can just add web. config to your project and specify this (and other) setting value: Setting the RequestTimeout="00:20:00" on the aspNetCore tag and deploying the site will cause it not to timeout.

How do I change my request timeout?

Click the Container tab. In the Request timeout field, enter the timeout value that you want to use in seconds. Use values ranging from 1 to 3600 seconds, or from 1 to 60 minutes. Click Create or Deploy.

What is the default timeout for .NET core?

The default value is 100,000 milliseconds (100 seconds). To set an infinite timeout, set the property value to InfiniteTimeSpan.


1 Answers

issue is solved:

in web config :

<security>
    <requestFiltering>
      <!-- This will handle requests up to 300MB -->
      <requestLimits maxAllowedContentLength="314572800" />
    </requestFiltering>
</security>

and in asp core 3.1 ConfigureServices : I did not understand the reason, but this piece of code solved the problem

services.Configure<FormOptions>(options =>
{
    options.ValueLengthLimit = int.MaxValue;
    options.MultipartBodyLengthLimit = long.MaxValue; // <-- ! long.MaxValue
    options.MultipartBoundaryLengthLimit = int.MaxValue;
    options.MultipartHeadersCountLimit = int.MaxValue;
    options.MultipartHeadersLengthLimit = int.MaxValue;
});
like image 137
sbr Avatar answered Oct 17 '22 21:10

sbr