空 WebApi 2 项目在 VS2017 15.2(26430.12) 中抛出 StackOverflow 异常

Empty WebApi 2 project throws StackOverflow Exception in VS2017 15.2(26430.12)

我正在使用 Visual Studio 2017 15.2(26430.12)
我创建了一个 WebApi 2 空项目
然后添加一个控制器如下:

public class DefaultController : ApiController
{
    // GET: api/Default
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET: api/Default/5
    public string Get(int id)
    {
        return "value";
    }

    // POST: api/Default
    public void Post([FromBody]string value)
    {
    }

    // PUT: api/Default/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE: api/Default/5
    public void Delete(int id)
    {
    }
}

没有任何其他更改,我启动了项目,当我导航到 http://localhost:51989/api/Default/ 时发生以下异常!没有任何细节
它出什么问题了?

来自 windows 事件查看器的详细信息:

Faulting application name: iisexpress.exe, version: 10.0.14358.1000, time stamp: 0x574fc56b
Faulting module name: iiscore.dll, version: 10.0.14358.1000, time stamp: 0x574fc56c
Exception code: 0xc00000fd
Fault offset: 0x00018992
Faulting process id: 0x794
Faulting application start time: 0x01d2e6c78b37e814
Faulting application path: C:\Program Files (x86)\IIS Express\iisexpress.exe
Faulting module path: C:\Program Files (x86)\IIS Express\iiscore.dll
Report Id: 088d1dfb-6a5d-4fcb-bfab-e85185d1c6a5
Faulting package full name: 
Faulting package-relative application ID: 

编辑:
项目 Web.config

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=301879
  -->
<configuration>
  <appSettings></appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
      <remove name="OPTIONSVerbHandler"/>
      <remove name="TRACEVerbHandler"/>
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
        preCondition="integratedMode,runtimeVersionv4.0"/>
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

物有所值,使用与您相同的 VS 版本,在 Windows 10 上,我能够创建测试应用程序并运行它而没有遇到此问题。我也在使用相同版本的 IIS Express。我认为脚手架代码没有任何问题。如果存在,您能否尝试删除解决方案根目录中的(隐藏).vs 目录,看看是否可以解决问题?由于解决方案的 .vs 目录和您自己的 Documents\IISExpress 目录之间的 applicationhost.config 差异,我之前看到过奇怪的情况。还有一个关于类似问题的类似线程,它在此处提供了额外的调试建议: