asp.net-coreiispublishrequest-timed-out

how set the request timeout in asp .net core 3.1


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


Solution

  • 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;
    });