我正在使用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:
修改
Project 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=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
</configuration>
答案 0 :(得分:2)
对于它的价值,使用与您相同的VS版本,在Windows 10上,我能够创建测试应用程序并在不遇到此问题的情况下播放它。我也使用相同版本的IIS express。我不认为脚手架代码有什么问题。如果存在,您是否可以尝试删除解决方案根目录中的(隐藏).vs目录,看看是否可以解决问题?由于解决方案的.vs目录和您自己的Documents \ IISExpress目录之间的applicationhost.config存在差异,我之前发现了一些奇怪的现象。还有一个关于类似问题的类似线程,它提供了额外的调试建议:IIS Express crashes when starting a site from visual studio