74 lines
2.8 KiB
C#
74 lines
2.8 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace SampleApp
|
|
{
|
|
public class Startup
|
|
{
|
|
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
|
|
{
|
|
loggerFactory.AddConsole(LogLevel.Trace);
|
|
var logger = loggerFactory.CreateLogger("Default");
|
|
|
|
app.Run(async context =>
|
|
{
|
|
var connectionFeature = context.Connection;
|
|
logger.LogDebug($"Peer: {connectionFeature.RemoteIpAddress?.ToString()}:{connectionFeature.RemotePort}"
|
|
+ $"{Environment.NewLine}"
|
|
+ $"Sock: {connectionFeature.LocalIpAddress?.ToString()}:{connectionFeature.LocalPort}");
|
|
|
|
var response = $"hello, world{Environment.NewLine}";
|
|
context.Response.ContentLength = response.Length;
|
|
context.Response.ContentType = "text/plain";
|
|
await context.Response.WriteAsync(response);
|
|
});
|
|
}
|
|
|
|
public static void Main(string[] args)
|
|
{
|
|
TaskScheduler.UnobservedTaskException += (sender, e) =>
|
|
{
|
|
Console.WriteLine("Unobserved exception: {0}", e.Exception);
|
|
};
|
|
|
|
var host = new WebHostBuilder()
|
|
.UseKestrel(options =>
|
|
{
|
|
options.Listen(IPAddress.Loopback, 5000, listenOptions =>
|
|
{
|
|
// Uncomment the following to enable Nagle's algorithm for this endpoint.
|
|
//listenOptions.NoDelay = false;
|
|
|
|
listenOptions.UseConnectionLogging();
|
|
});
|
|
options.Listen(IPAddress.Loopback, 5001, listenOptions =>
|
|
{
|
|
listenOptions.UseHttps("testCert.pfx", "testPassword");
|
|
listenOptions.UseConnectionLogging();
|
|
});
|
|
|
|
options.UseSystemd();
|
|
|
|
// The following section should be used to demo sockets
|
|
//options.ListenUnixSocket("/tmp/kestrel-test.sock");
|
|
|
|
// Uncomment the following line to change the default number of libuv threads for all endpoints.
|
|
//options.ThreadCount = 4;
|
|
})
|
|
.UseContentRoot(Directory.GetCurrentDirectory())
|
|
.UseStartup<Startup>()
|
|
.Build();
|
|
|
|
host.Run();
|
|
}
|
|
}
|
|
} |