无法在IISExpress

时间:2016-05-19 16:51:51

标签: asp.net-core asp.net-core-mvc

我创建了一个新的" 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版本创建了一个新项目,这次它起作用了。

6 个答案:

答案 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)

对于那些碰到这一点的人,我有与问题中描述的完全相同的行为和错误消息。

显然,有些术语不能单独用作项目名称,例如webapp。 (我修复了将我的项目重命名为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