Dosaic.Hosting.WebHost
1.0.18
See the version list below for details.
dotnet add package Dosaic.Hosting.WebHost --version 1.0.18
NuGet\Install-Package Dosaic.Hosting.WebHost -Version 1.0.18
<PackageReference Include="Dosaic.Hosting.WebHost" Version="1.0.18" />
paket add Dosaic.Hosting.WebHost --version 1.0.18
#r "nuget: Dosaic.Hosting.WebHost, 1.0.18"
// Install Dosaic.Hosting.WebHost as a Cake Addin #addin nuget:?package=Dosaic.Hosting.WebHost&version=1.0.18 // Install Dosaic.Hosting.WebHost as a Cake Tool #tool nuget:?package=Dosaic.Hosting.WebHost&version=1.0.18
Dosaic.Hosting.Webhost
Dosaic.Hosting.WebHost is the core package
that allows dotnet dev's
to use the dosaic web host and dosaic plugins
.
This package is mandatory, without it you can't use any plugins
Installation
To install the nuget package follow these steps:
dotnet add package Dosaic.Hosting.Generator # this is required so the web host can discover & load the plugins
dotnet add package Dosaic.Hosting.WebHost
or add as package reference to your .csproj
<PackageReference Include="Dosaic.Hosting.Generator" Version="" />
<PackageReference Include="Dosaic.Hosting.WebHost" Version="" />
Rewrite the Entrypoint Program.cs to have following code:
using Dosaic.Hosting.WebHost;
PluginWebHostBuilder.RunDefault(Dosaic.Generated.DosaicPluginTypes.All);
Config files and ENV vars
Dosaic will try to load config files and values in the following order
appsettings.json
appsettings.yaml
appsettings.yml
appsettings.*.json
appsettings.*.yaml
appsettings.*.yml
appsettings.secrets.yml
appsettings.*.secrets.yml
9ENV variables
NOTE: All settings (does not matter which file extension) will be ordered by node length. And the secret files will be loaded as last (except the environment variables).
Example:
- appsettings.yaml
- appsettings.api.yaml
- appsettings.api.host.yaml
- appsettings.secrets.yaml
- apssettings.api.secrets.yaml
- appsettings.api.host.secrets.yaml
- ENV Variables
File names must always start with appsettings
or they will be ignored!
Nested settings use _
to build their hierarchy as ENV variables
host:
urls: http://+:5300 # optional, default is 8080;separate multiple urls with ","
becomes
HOST_URLS=http://+:5300 # optional, default is 8080;separate multiple urls with ","
General settings
Configure your config file with these properties
host:
urls: http://+:5300 # optional, default is 8080;separate multiple urls with ","
maxRequestSize: 8388608 # optional, default is 8 MB
or as ENV variables
HOST_URLS=http://+:5300 # optional, default is 8080;separate multiple urls with ","
HOST_MAXREQUESTSIZE=8388608 # optional, default is 8 MB
Logging
Configure your appsettings.logging.yml with these properties
serilog:
minimumLevel: Debug # or Warn or Info
override:
System: Error # or Warning or Information
Microsoft: Error # or Warning or Information
or as ENV variables
SERIOLOG_minimumLevel=Debug
SERIOLOG_OVERRIDE_SYSTEM=Error
SERIOLOG_OVERRIDE_MICROSOFT=Error
Usage
Rewrite your entrypoint Program.cs to have following code:
Dosaic.Hosting.WebHostPluginWebHostBuilder.RunDefault(Dosaic.Generated.DosaicPluginTypes.All);
Now you can add additional plugins as nuget packages to your project and configure them via config files/settings and/or in your web host plugin
Metrics
Dosaic uses open telemetry for it's metrics capabilities. Further info can be found here
Tracing settings
o uses open telemetry for it's tracing capabilities. Further info can be found here
https://opentelemetry.io/docs/instrumentation/net/getting-started/
If there is a tracing host configured, the service will try to send any traces to this host. it will also enrich the log messages with SpanIds and TraceIds.
tracing:
host: http://localhost:3333
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net9.0
- AspNetCore.HealthChecks.System (>= 9.0.0)
- AspNetCoreRateLimit (>= 5.0.0)
- Chronos.Net (>= 2.0.24)
- Dosaic.Hosting.Abstractions (>= 1.0.18)
- NetEscapades.Configuration.Yaml (>= 3.1.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.11.0)
- OpenTelemetry.Exporter.Prometheus.AspNetCore (>= 1.7.0-rc.1)
- OpenTelemetry.Extensions.Hosting (>= 1.11.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.10.1)
- OpenTelemetry.Instrumentation.Http (>= 1.10.0)
- OpenTelemetry.Instrumentation.Process (>= 0.5.0-beta.4)
- OpenTelemetry.Instrumentation.Runtime (>= 1.10.0)
- Serilog.AspNetCore (>= 9.0.0)
- Serilog.Enrichers.Span (>= 3.1.0)
- Serilog.Enrichers.Thread (>= 4.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.