簡體   English   中英

在Ubuntu 16.04上運行簡單的.Net Core MVC應用程序時出現內部服務器錯誤

[英]Internal Server Error while running a simple .Net Core MVC application on Ubuntu 16.04

我在Ubuntu上使用.Net core 1.0運行一個簡單的“hello world”應用程序時出現內部服務器錯誤。 我確信我錯過了一些簡單的東西,但無法弄清楚它是什么。 它一直在工作,直到我替換了return Content("Hello, world!"); with return View(); 在HomeController中,並using System.IO;添加using System.IO; .UseContentRoot(Directory.GetCurrentDirectory())到Program.cs。

我嘗試將SystemSystem.X添加到Startup.cs中的依賴項列表中無濟於事。

Program.cs中

using Microsoft.AspNetCore.Hosting;
using System.IO;

namespace aspnetcoreapp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }
    }
}

project.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }
  },
  "frameworks": {
    "netcoreapp1.0": {}
  }
}

Startup.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

namespace aspnetcoreapp
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseDeveloperExceptionPage();

            app.UseStaticFiles();

            app.UseMvc();
        }
    }
}

HomeController.cs

using Microsoft.AspNetCore.Mvc;

namespace aspnetcoreapp
{
    [Route("/")]
    [Route("[controller]")]
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}

dotnet運行

Project aspnetcoreapp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling aspnetcoreapp for .NETCoreApp,Version=v1.0

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:01.0784778


Hosting environment: Production
Content root path: /home/cvandal/code/aspnetcoreapp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

結果

在編譯處理此請求所需的資源期間發生錯誤。 請查看以下特定錯誤詳細信息並相應地修改源代碼。

生成的代碼

使用System無法找到類型或命名空間名稱'System'(您是否缺少using指令或程序集引用?); 使用System.Linq找不到類型或命名空間名稱'System'(您是否缺少using指令或程序集引用?); 使用System.Collections.Generic找不到類型或命名空間名稱'System'(您是否缺少using指令或程序集引用?); 使用Microsoft.AspNetCore.Mvc.ViewFeatures在命名空間“Microsoft.AspNetCore.Mvc”(您是否缺少程序集引用?)中不存在類型或命名空間名稱“ViewFeatures”; 使用System.Threading.Tasks找不到類型或命名空間名稱'System'(您是否缺少using指令或程序集引用?); 無法定義使用“動態”的類或成員,因為無法找到編譯器所需類型“System.Runtime.CompilerServices.DynamicAttribute”。 你錯過了參考嗎? public class _Views_Home_Index_cshtml:Microsoft.AspNetCore.Mvc.Razor.RazorPage預定義類型'System.Boolean'未定義或導入公共類_Views_Home_Index_cshtml:Microsoft.AspNetCore.Mvc.Razor.RazorPage類型'Object'在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public class _Views_Home_Index_cshtml:Microsoft.AspNetCore.Mvc.Razor.RazorPage類型“Object”在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider {get; 私人集; 預定義類型'System.Object'未定義或導入公共Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider {get; 私人集; 命名空間“Microsoft.AspNetCore.Mvc”中不存在類型或命名空間名稱“ViewFeatures”(您是否缺少程序集引用?)public Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider {get; 私人集; 預定義類型'System.Void'未定義或導入公共Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider {get; 私人集; “Object”類型在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public Microsoft.AspNetCore.Mvc.IUrlHelper Url {get; 私人集; 預定義類型'System.Object'未定義或導入公共Microsoft.AspNetCore.Mvc.IUrlHelper Url {get; 私人集; 命名空間“Microsoft.AspNetCore.Mvc”中不存在類型或命名空間名稱“IUrlHelper”(您是否缺少程序集引用?)public Microsoft.AspNetCore.Mvc.IUrlHelper Url {get; 私人集; 預定義類型'System.Void'未定義或導入公共Microsoft.AspNetCore.Mvc.IUrlHelper Url {get; 私人集; “Object”類型在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public Microsoft.AspNetCore.Mvc.IViewComponentHelper Component {get; 私人集; 預定義類型'System.Object'未定義或導入公共Microsoft.AspNetCore.Mvc.IViewComponentHelper Component {get; 私人集; 命名空間“Microsoft.AspNetCore.Mvc”中不存在類型或命名空間名稱“IViewComponentHelper”(您是否缺少程序集引用?)public Microsoft.AspNetCore.Mvc.IViewComponentHelper Component {get; 私人集; 預定義類型'System.Void'未定義或導入公共Microsoft.AspNetCore.Mvc.IViewComponentHelper Component {get; 私人集; “Object”類型在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json {get; 私人集; 預定義類型'System.Object'未定義或導入公共Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json {get; 私人集; 命名空間'Microsoft.AspNetCore.Mvc.Rendering'中不存在類型或命名空間名稱'IJsonHelper'(您是否缺少程序集引用?)public Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json {get; 私人集; 預定義類型'System.Void'未定義或導入公共Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json {get; 私人集; “Object”類型在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 預定義類型'System.Object'未定義或導入公共Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 命名空間“Microsoft.AspNetCore.Mvc.Rendering”中不存在類型或命名空間名稱“IHtmlHelper <>”(您是否缺少程序集引用?)public Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; “Object”類型在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 預定義類型'System.Object'未定義或導入公共Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 無法定義使用“dynamic”的類或成員,因為無法找到編譯器所需類型“System.Runtime.CompilerServices.DynamicAttribute”。 你錯過了參考嗎? public Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 預定義類型'System.Boolean'未定義或導入公共Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 預定義類型'System.Void'未定義或導入公共Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html {get; 私人集; 異步方法的返回類型必須為void,Task或Task public override async Task ExecuteAsync()類型'Object'在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public override async Task ExecuteAsync()未定義的預定義類型'System.Object'或導入的公共覆蓋異步任務ExecuteAsync()無法找到類型或命名空間名稱'Task'(您是否缺少using指令或程序集引用? )public override async Task ExecuteAsync()'_ Views_Home_Index_cshtml.ExecuteAsync()':返回類型必須是'Task'才能匹配被覆蓋的成員'RazorPage.ExecuteAsync()'public override async Task ExecuteAsync()類型'Task'在一個未引用的程序集。 您必須添加對程序集'System.Threading.Tasks,Version = 4.0.10.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 public override async Task ExecuteAsync()未定義或導入預定義類型'System.Void'public _Views_Home_Index_cshtml(){}類型'Object'在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Object”[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型“屬性”在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型'System.Void'[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型'Object'在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Object”[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型“屬性”在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型'System.Void'[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型'Object'在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Object”[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型“屬性”在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型'System.Void'[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型'Object'在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Object”[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型“屬性”在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型'System.Void'[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型'Object'在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Object”[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]類型“屬性”在程序集中定義沒有引用。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 [Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Void”[Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]未定義或導入預定義類型“System.Void” public _Views_Home_Index_cshtml()預定義類型'System.Int32'未定義或導入BeginContext(0,181,true); 預定義類型'System.Int32'未定義或導入BeginContext(0,181,true); 預定義類型'System.Boolean'未定義或導入BeginContext(0,181,true); “Object”類型在未引用的程序集中定義。 您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。 BeginContext(0,181,true); 預定義類型'System.Object'未定義或導入BeginContext(0,181,true); 預定義類型'System.Void'未定義或導入BeginContext(0,181,true); 預定義類型'System.String'未定義或導入WriteLiteral(“\\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ nasnetnetcoreapp \\ n
\\ n \\ n \\ n

你好,世界!

\\ n
\\ n \\ n“);類型'Object'在未引用的程序集中定義。您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.WriteLiteral (“\\ n \\ n \\ n \\ n \\ n \\ n \\ naspnetcoreapp \\ n
\\ n \\ n \\ n

你好,世界!

\\ n
\\ n \\ n“);預定義類型'System.Object'未定義或導入WriteLiteral(”\\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ nasnetnetcoreapp \\ n
\\ n \\ n \\ n

你好,世界!

\\ n
\\ n \\ n“);預定義類型'System.Void'未定義或導入WriteLiteral(”\\ n \\ n \\ n \\ n \\ n \\ n \\ n \\ nasnetnetcoreapp \\ n
\\ n \\ n \\ n

你好,世界!

\\ n
\\ n \\ n“);類型'Object'在未引用的程序集中定義。您必須添加對程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.EndContext ();未定義或導入預定義類型'System.Object'EndContext();未定義或導入預定義類型'System.Void'EndContext();'_ Views_Home_Index_cshtml.ExecuteAsync()':並非所有代碼路徑都返回值public override async Task ExecuteAsync()

project.jsonbuildOptions節點下,添加一個名為"preserveCompilationContext": true的條目"preserveCompilationContext": true ,這應該可以解決上述錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM