ASP .NET 5空项目返回500内部服务器错误

时间:2015-12-16 17:08:38

标签: asp.net-core

我使用空的ASP .NET 5预览模板创建了一个新的Web应用程序。在我运行dnu restore之后项目构建。

当我运行它时,我得到一个空的响应(即空白页)。刷新页面,我得到一个“HTTP错误500.0 - 内部服务器错误”的典型页面,没有有用的信息(见下面的截图)。

enter image description here

我正在使用项目模板中的标准样板代码:

public class Startup
{
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app)
    {
        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }
}

我注意到如果我设置断点,它会告诉我断点不会被击中。

我做错了什么,我怎样才能让这个最简单的方案有效?

编辑:project.json是项目模板附带的默认项目(使用beta 5,我知道这不是最新的):

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ]
}

1 个答案:

答案 0 :(得分:1)

为了完成这项工作,我必须经历这一切。总结:

  • 转到%userprofile%,删除.dnx \ packages中的所有内容(只是为了确保不同的beta运行时版本之间没有冲突)
  • 确保使用最新的运行时
  • dnu restore
  • 根据this answer
  • 替换project.json中的依赖项
  • 根据该答案下方的评论,将"Microsoft.AspNet.Hosting --config hosting.ini"替换为"Microsoft.AspNet.Server.Kestrel"
  • 在Startup.cs中,将using Microsoft.Framework.DependencyInjection;替换为using Microsoft.Extensions.DependencyInjection;
  • 使用命令行调用dnx web,而不是从Visual Studio
  • 运行项目

故事的道德:Visual Studio附带的“预览模板”已经过时了,你最好开始一个新项目。

注意:在撰写本文时,最新的运行时为1.0.0-rc1-update1