Enable-KrStatusCodePage
SYNOPSIS
Enables Status Code Pages for a Kestrun server.
SYNTAX
Default (Default)
Enable-KrStatusCodePage [-Server <KestrunHost>] [-PassThru] [<CommonParameters>]
Redirect
Enable-KrStatusCodePage [-Server <KestrunHost>] -LocationFormat <String> [-PassThru] [<CommonParameters>]
ReExecute
Enable-KrStatusCodePage [-Server <KestrunHost>] -PathFormat <String> [-QueryFormat <String>] [-PassThru]
[<CommonParameters>]
Template
Enable-KrStatusCodePage [-Server <KestrunHost>] -ContentType <String> -BodyFormat <String> [-PassThru]
[<CommonParameters>]
LanguageOptions
Enable-KrStatusCodePage [-Server <KestrunHost>] [-LanguageOptions <LanguageOptions>] [-PassThru]
[<CommonParameters>]
ScriptBlock
Enable-KrStatusCodePage [-Server <KestrunHost>] [-ScriptBlock <ScriptBlock>] [-ExtraRefs <Assembly[]>]
[-Arguments <Hashtable>] [-PassThru] [<CommonParameters>]
Code
Enable-KrStatusCodePage [-Server <KestrunHost>] -Code <String> -Language <ScriptLanguage>
[-ExtraRefs <Assembly[]>] [-Arguments <Hashtable>] [-PassThru] [<CommonParameters>]
CodeFilePath
Enable-KrStatusCodePage [-Server <KestrunHost>] -CodeFilePath <String> [-ExtraRefs <Assembly[]>]
[-Arguments <Hashtable>] [-PassThru] [<CommonParameters>]
DESCRIPTION
Wraps KestrunHostStatusCodePagesExtensions to configure how 4xx-5xx responses produce a body: default text, redirect, re-execute, template body, options object, or a scripted handler via LanguageOptions (PowerShell/C#).
EXAMPLES
EXAMPLE 1
Enable-KrStatusCodePage -Mode Default
EXAMPLE 2
Enable-KrStatusCodePage -Mode Redirect -Location "/error/{0}"
EXAMPLE 3
Enable-KrStatusCodePage -Mode ReExecute -Path "/error/{0}" -Query "?code={0}"
EXAMPLE 4
Enable-KrStatusCodePage -Mode Template -ContentType "text/plain" -BodyFormat "Oops {0}"
EXAMPLE 5
$opts = [Microsoft.AspNetCore.Diagnostics.StatusCodePagesOptions]::new()
Enable-KrStatusCodePage -Mode Options -Options $opts
EXAMPLE 6
$lo = [Kestrun.Hosting.Options.LanguageOptions]::new()
$lo.ExtraImports = @('System.Net')
$lo.Code = {
param($Context)
$statusCode = $Context.Response.StatusCode
$reasonPhrase = [System.Net.HttpStatusCode]::Parse([int]$statusCode).ToString()
$message = "Custom handler: Status code $statusCode - $reasonPhrase"
$Context.Response.ContentType = 'text/plain'
$Context.Response.WriteAsync($message) | Out-Null
}
Enable-KrStatusCodePage -Mode LanguageOptions -LanguageOptions $lo
EXAMPLE 7
Enable-KrStatusCodePage -Mode ScriptBlock -ScriptBlock {
param($Context)
$statusCode = $Context.Response.StatusCode
$reasonPhrase = [System.Net.HttpStatusCode]::Parse([int]$statusCode).ToString()
$message = "Custom handler: Status code $statusCode - $reasonPhrase"
$Context.Response.ContentType = 'text/plain'
$Context.Response.WriteAsync($message) | Out-Null
}
EXAMPLE 8
Enable-KrStatusCodePage -Mode Code -Language PowerShell -Code {
param($Context)
$statusCode = $Context.Response.StatusCode
$reasonPhrase = [System.Net.HttpStatusCode]::Parse([int]$statusCode).ToString()
$message = "Custom handler: Status code $statusCode - $reasonPhrase"
$Context.Response.ContentType = 'text/plain'
$Context.Response.WriteAsync($message) | Out-Null
}
EXAMPLE 9
Enable-KrStatusCodePage -Mode CodeFilePath -CodeFilePath 'C:\Scripts\StatusCodeHandler.ps1'
PARAMETERS
-Server
The Kestrun server instance (resolved if omitted via Resolve-KestrunServer).
Type: KestrunHost
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-LocationFormat
The location URL for Redirect mode (e.g. “/error/{0}”).
Type: String
Parameter Sets: Redirect
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-PathFormat
The path to re-execute for ReExecute mode (e.g. “/error/{0}”).
Type: String
Parameter Sets: ReExecute
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-QueryFormat
The query string to append for ReExecute mode (e.g. “?code={0}”).
Type: String
Parameter Sets: ReExecute
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ContentType
The content type for Template mode (e.g. “text/plain” or “application/json”).
Type: String
Parameter Sets: Template
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-BodyFormat
The body format string for Template mode (e.g. “Oops {0}”).
Type: String
Parameter Sets: Template
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LanguageOptions
A pre-configured LanguageOptions object for custom scripted handling.
Type: LanguageOptions
Parameter Sets: LanguageOptions
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ScriptBlock
A PowerShell script block for custom scripted handling. The script block receives a single parameter: the HttpContext object.
Type: ScriptBlock
Parameter Sets: ScriptBlock
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Code
A code string for custom scripted handling.
Type: String
Parameter Sets: Code
Aliases: CodeBlock
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Language
The scripting language for the code string (PowerShell, CSharp, VisualBasic).
Type: ScriptLanguage
Parameter Sets: Code
Aliases:
Accepted values: Native, PowerShell, CSharp, FSharp, Python, JavaScript, VBNet
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-CodeFilePath
A file path to a code file for custom scripted handling (.ps1, .cs, .vb).
Type: String
Parameter Sets: CodeFilePath
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ExtraRefs
Additional assembly references for custom scripted handling.
Type: Assembly[]
Parameter Sets: ScriptBlock, Code, CodeFilePath
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Arguments
Additional arguments (key-value pairs) for custom scripted handling.
Type: Hashtable
Parameter Sets: ScriptBlock, Code, CodeFilePath
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-PassThru
If specified, the function will return the created route object.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
INPUTS
OUTPUTS
Kestrun.Hosting.KestrunHost
NOTES
This function is part of the Kestrun PowerShell module and is used to manage Kestrun servers and their middleware components.