Skip to main content

Posts

Bringing together DotNet Core, Nginx and Supervisor on a linux server

We going to look at a simple tutorial on how to have your .net core site run on a linux server and make use of supervisor to start up and monitor the site. First we going to assume you have supervisor installed on the box, with nginx already running. Configure supervisor firstly browse to the folder /etc/supervisor/conf.d Inside this folder create a .conf file for example dotnettest.conf Open the dotnettest.conf and insert the following lines [program:dotnettest] command=/usr/bin/dotnet  /home/testapp/bin/Debug/netcoreapp2.2/publish/testapp.dll directory=/home/testapp/bin/Debug/netcoreapp2.2/publish/ autostart=true autorestart=true stderr_logfile=/var/log/dotnettest.err.log stdout_logfile=/var/log/dotnettest.out.log environment=ASPNETCORE_ENVIRONMENT=Production user=root stopsignal=INT For the explanation of the above you specify the name of your site by placing "program:" in front of it command you use to specify that you want dotnet which is l
Recent posts

Messaging through a service Bus using MassTansit with Asp.Net Core 2.2 tutorial

Today we going to look at a quick tutorial on how to use MassTransit as a messaging bus for your Asp.Net core 2.2 application. I have uploaded the sample project on GitHub , if you want to follow along Spin up new project To begin spin up a new Api project, I am using Visual Studio 2019, I also added 2 nuget packages listed below.     <PackageReference Include="MassTransit.AspNetCore" Version="5.5.5" />     <PackageReference Include="MassTransit.RabbitMQ" Version="5.5.5" /> Startup.cs  In your Startup.cs file public void ConfigureServices(IServiceCollection services)         {             //Register your message consumer             services.AddScoped<OrderConsumer>();             // Register MassTransit             services.AddMassTransit(x =>             {                 x.AddConsumer<OrderConsumer>();                 x.AddBus(provider => Bus.Factory.CreateUsingRabbitMq(cfg =>

Posting Username and Password to Identity Server 4 to get a Token

A small and simple task, but which took me a lot of time searching the web. So now I know where to find it. Disclaimer we will be using the Password Grant Flow you can find details here , in the link its discouraged to use this flow except maybe on legacy applications. That aside. Identity Server 4 Set up you identity server to use the password grant as indicated in their documentation, you can find link here  . C# Code  var client = new HttpClient();             client.BaseAddress = new Uri("http://localhost:5000");             var byteArray = Encoding.Default.GetBytes("ro.client:secret");             client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));             var request = new HttpRequestMessage(HttpMethod.Post, "/connect/token");             var keyValues = new List<KeyValuePair<string, string>>();             keyVa

Adding File logging into .net Core 2.0 application

Will be making use of Serilog to log for our application. To get started we need the following Nuget packages. Serilog.AspNetCore Serilog.Settings.Configuration Serilog.Sinks.Console Serilog.Sinks.RollingFile StartUp.cs using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Serilog; namespace MyBlog {     public class Startup     {         public Startup(IConfiguration configuration)         {             Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(configuration).CreateLogger(); // <-- add for logging             Configuration = configuration;         }         public IConfiguration Configuration { get; }         public void ConfigureServices(IServiceCollection services)         {             services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(dispose: true)); //<

Using Gitlab shared Runners

So I was playing around with .Net core and wondering how to make use of Gitlab's CI/CD pipeline without having to set up an external runner. It turns out the process is very simple, in your .gitlab-ci.yml , the first line is to point to a docker image, which will be used for your build. The last important step is in your tags section to refer to one of the tags used by the shared gitlab runners. For example I referred to the docker tag. example of  .gitlab-ci.yml image: microsoft/dotnet stages: - build build: stage: build script: - dotnet build tags: - docker