【问题标题】:Can you set request timeout in asp.net core 2.0 hosted in IIS from C# code?您可以从 C# 代码在 IIS 中托管的 asp.net core 2.0 中设置请求超时吗?
【发布时间】:2018-05-07 09:23:54
【问题描述】:

有没有办法从 C# 中设置 requestTimeout 而不是需要在 web.config 中设置 requestTimeout

在 IIS 中托管的 asp.net core 2.0

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore requestTimeout="00:00:04" processPath="dotnet" arguments=".\Foo.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

Not like this

【问题讨论】:

    标签: iis asp.net-core .net-core asp.net-core-2.0 asp.net-core-webapi


    【解决方案1】:

    不,没有办法做到这一点,正如您所描述的那样。但是根据documentation 您可以将 web.config 添加到您的项目并指定此(和其他)设置值:

    如果web.config 文件在项目中不存在,则创建该文件 使用正确的 processPath 和参数来配置 ASP.NET 核心模块并移至已发布的输出。

    如果项目中有web.config 文件存在,则该文件为 使用正确的 processPath 和要配置的参数进行转换 ASP.NET Core Module 并移至已发布的输出。 该 转换不会修改文件中的 IIS 配置设置

    web.config 文件可能提供额外的IIS 配置设置 控制活动的IIS 模块。有关IIS 模块的信息 能够使用ASP.NET Core 应用程序处理请求,请参阅IIS 模块主题。

    要防止 Web SDK 转换 web.config 文件,请使用 IsTransformWebConfigDisabled 项目文件中的属性。

    【讨论】:

    • 如果 Web.config 不存在,如何添加..." 使用正确的 processPath 和参数创建文件以配置 ASP.NET Core 模块" 是什么意思?请详细说明。
    • @Dnyaneshwar123456 当您使用 IIS 时,web.config 在您发布 Web 项目后生成。但是您可以将此文件添加到项目根目录。查看this 了解哪些可以配置,哪些不能配置,以及如何配置其余部分。
    • 我试过了...我在我的 .net core 2.0 项目中添加了 web.config,并为 API 项目中的请求添加了 20 分钟的请求超时。但仍然没有运气......当移动应用程序发送大量数据时出现同样的错误......为了发布,我们使用 Azure 服务器,因此不知道 Azure 服务器的确切设置。
    • 如果您使用的是 InProcess 托管模型,则 Web.Config 中的 requestTimeout 属性将被忽略。 docs.microsoft.com/en-us/aspnet/core/host-and-deploy/…
    猜你喜欢
    • 2018-11-05
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    相关资源
    最近更新 更多