ASP.NET Core 2.0如何在launchSettings.json

时间:2018-05-25 16:28:40

标签: visual-studio-2017 web-config asp.net-core-2.0 iis-express web-config-transform

我有一个ASP.NET Core 2.0 API,我试图在我的本地Win10开发计算机上使用VS2017 / IIS Express进行调试,我遇到了IIS Express的问题,因为它的响应超时默认为2我的进程可以在我的API中完成前几分钟,从而返回502.3 - Bad Gateway消息。

我继续在我的API中运行并在3分50秒后完成。因此,我需要增加IIS Express的请求超时。

我在网上找到的大多数例子都谈到了使用web.config,例如;

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

...但据我所知,在本地IIS Express上运行的ASP.NET Core 2.0 API并没有使用我项目中的web.config,而是依赖于项目中的launchSettings.json 。但是,我无法在网上找到任何关于launchSettings有任何设置值来增加默认超时的内容。

为了确认,我尝试将web.config文件(就像我上面列出的那样)放在我项目的wwwroot文件夹中,但它没有任何区别。这适用于我在Azure中部署的解决方案(see related Stack Overflow post),但在本地开发人员的IIS Express中没有。

这似乎应该是一项简单的任务,但到目前为止,我还没有找到解决方案。

有什么想法吗?

编辑5/27/18 - 解决方案

带有ASP.NET Core 2.0的IIS Express使用类似于web.config的文件,名为applicationhost.config,它位于项目根目录/ .vs / config文件夹中。这个文件有一个

<configuration><Location> ... <location</configuration> 

部分类似于我在下面列出的部分。

这个部分
<aspNetCore ... />

我可以应用requestTimeout值的节点。通过设置,我的开发系统能够超过默认的2分钟超时。

<location path="MyAPI">
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <httpCompression>
      <dynamicCompression>
        <add mimeType="text/event-stream" enabled="false" />
      </dynamicCompression>
    </httpCompression>
    <aspNetCore requestTimeout="00:20:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
  </system.webServer>
</location>

1 个答案:

答案 0 :(得分:1)

你误解了这些概念。

launchSettings.json仅供Visual Studio用于确定如何运行Web项目。 (my blog post

中的更多信息

IIS Express仍然依赖web.config来读取设置,因为这是它理解的唯一文件。