Installation von ASP.NET Core auf Ubuntu 14.04

Ubuntu 14.04 installieren. Achtung!: Es muss die 64Bit Version sein!

APT-Feed hinzufügen

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

sudo apt-get update

Installieren des .NET Core SDK

ggf. alte Versionen entfernen (Script herunterladen und ausführen):

https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/uninstall/dotnet-uninstall-debian-packages.sh

Installation

sudo apt-get install dotnet-dev-1.0.0-preview3-003150

Testen, ob nun alles funktioniert

mkdir hwapp
cd hwapp
dotnet new

dotnet restore
dotnet run

Nun eine ASP.NET Seite anlegen

project.json
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

Startup.cs

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;

namespace aspnetcoreapp
{
  public class Startup
  {
    public void Configure(IApplicationBuilder app)
    {
      app.Run(context =>
      {
        return context.Response.WriteAsync("Hello from ASP.NET Core!");
      });
    }
  }
}

Program.cs

using System;
using Microsoft.AspNetCore.Hosting;

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

Damit kann der Server Kestrel lokal an den Start gehen mit

dotnet run

Damit der Server aber auch von „ausserhalb“ erreichbar wird, muss ein Reverse-Proxy Webserver die Anfragen umleiten. Ich habe mich der Einfachheit halber für NGINX entschieden.

sudo apt-get install nginx

sudo  nano /etc/nginx/sites-available/example.com

Inhalt der Konfigurations Datei

server {
 listen 5001;
 server_name example.com;

location / {
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass http://127.0.0.1:5000;
 }
}

NGINX neu starten

sudo service nginx restart

Erneut die fehlenden Packages nachinstallieren und dann Kestrel starten

dotnet restore
dotnet run

Nun sollte sich die Webseite unter http://<server-ip>:5001 aufrufen lassen

Kommentar verfassen