我创建了一个新的" ASP.NET核心Web应用程序(.NET Core)"在VS2015项目。它没有任何问题,所以我想给它一个测试运行。但是,在启动时,它会因以下错误而窒息而崩溃:
Exception thrown: 'System.AggregateException' in Microsoft.AspNetCore.Server.Kestrel.dll
The program '[11608] dotnet.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.
The program '[15048] iisexpress.exe' has exited with code 0 (0x0).
我没有看到任何其他记录。我试过调试它,而我发现它在WebHostBuilder.Run()
类的Program
方法中崩溃了。它是框架的一部分,所以我无法进一步发展。
请注意,通过dotnet run
命令运行时程序运行正常。只有IISExpress不起作用。
我该如何调试此问题?
project.json文件如下。 (它是由Visual Studio生成的,我没有改变任何东西。)
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview1-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final"
},
"tools": {
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
},
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"gcServer": true
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
更新:我为Core RTM版本创建了一个新项目,这次它起作用了。
答案 0 :(得分:8)
另一个问题是您可能正在运行旧版本的框架。尝试以project.json
类型转到可运行项目的根(Command Prompt
)位置:
dotnet run
答案 1 :(得分:7)
我和你有同样的问题。对我来说,解决方案是关闭VS2015,删除文件project.lock.json
,然后再次重启VS. (project.lock.json
将自动生成)
看起来调试器无法附加到应用程序。在我的情况下,我在函数throw new Exception("...");
的第一行添加了一个public Startup(IHostingEnvironment env)
,应用程序就会死掉,并且不会像预期的那样在未处理的异常中中断。
重建project.lock.json
后,调试器再次正常工作。
答案 2 :(得分:4)
我更新了dotnet核心的RTM版本并使用新版本创建了一个新项目。我想这肯定是个错误。
答案 3 :(得分:0)
对于那些碰到这一点的人,我有与问题中描述的完全相同的行为和错误消息。
显然,有些术语不能单独用作项目名称,例如web
或app
。 (我修复了将我的项目重命名为WebApp
)
已经logged as a bug,修复程序将包含在即将发布的版本中。
不幸的是,在第一次失败运行后,项目重命名不足以使其工作,因为IIS Express配置文件保留旧条目。
只需编辑位于applicationhost.config
的{{1}}文件,然后删除名为[PROJECT_ROOT]\.vs\config\
或site
的{{1}}元素,重新启动VS并运行它。
希望它有所帮助!
答案 4 :(得分:0)
我运行项目时遇到了同样的错误(不使用IIS)。 经过一番调查后,我发现appsettings.json中的服务器URL(在Configuration中使用)已经很忙了。我改变了网址,但效果很好。 希望它对某人有帮助!
答案 5 :(得分:0)
我有同样的错误。找到的解决方案是我的x64应用程序设置为x86