ServiceStack
Language: C# · View source on GitHub
Dockerfile
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY Directory.Build.props .
COPY src/Servers/ServiceStackServer/ src/Servers/ServiceStackServer/
RUN dotnet restore src/Servers/ServiceStackServer/ServiceStackServer.csproj
RUN dotnet publish src/Servers/ServiceStackServer/ServiceStackServer.csproj -c Release -o /app --no-restore
FROM mcr.microsoft.com/dotnet/aspnet:10.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "ServiceStackServer.dll"]Source
using ServiceStack;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.UseServiceStack(new AppHost());
app.Map("/echo", (HttpContext ctx) =>
{
var sb = new System.Text.StringBuilder();
foreach (var h in ctx.Request.Headers)
foreach (var v in h.Value)
sb.AppendLine($"{h.Key}: {v}");
return Results.Text(sb.ToString());
});
app.Map("/cookie", (HttpContext ctx) =>
{
var sb = new System.Text.StringBuilder();
foreach (var cookie in ctx.Request.Cookies)
sb.AppendLine($"{cookie.Key}={cookie.Value}");
return Results.Text(sb.ToString());
});
app.MapFallback(async (HttpContext ctx) =>
{
if (ctx.Request.Method == "POST")
{
using var reader = new StreamReader(ctx.Request.Body);
var body = await reader.ReadToEndAsync();
return Results.Text(body);
}
return Results.Ok("OK");
});
app.Run("http://0.0.0.0:8080");
class AppHost : AppHostBase
{
public AppHost() : base("Probe", typeof(AppHost).Assembly) { }
public override void Configure() { }
}Test Results
Loading results...