Class WebServerBase<TOptions>
Base class for IWebServer implementations.
Implements
Namespace: EmbedIO
Syntax
public abstract class WebServerBase<TOptions> : ConfiguredObject, IWebServer, IDisposable, IWebModuleContainer, IMimeTypeCustomizer, IMimeTypeProvider, IHttpContextHandler where TOptions : WebServerOptionsBase, new()
Type Parameters
| Name | Description |
|---|---|
| TOptions | The type of the options object used to configure an instance. |
Constructors
WebServerBase()
Initializes a new instance of the WebServerBase<TOptions> class.
Declaration
protected WebServerBase()
WebServerBase(TOptions)
Initializes a new instance of the WebServerBase<TOptions> class.
Declaration
protected WebServerBase(TOptions options)
Parameters
| Type | Name | Description |
|---|---|---|
| TOptions | options | A |
WebServerBase(Action<TOptions>)
Initializes a new instance of the WebServerBase<TOptions> class.
Declaration
protected WebServerBase(Action<TOptions> configure)
Parameters
| Type | Name | Description |
|---|---|---|
| Action<TOptions> | configure | A callback that will be used to configure the server's options. |
Properties
LogSource
Gets a string to use as a source for log messages.
Declaration
protected string LogSource { get; }
Property Value
| Type | Description |
|---|---|
| String |
Modules
Gets the modules.
Declaration
public IComponentCollection<IWebModule> Modules { get; }
Property Value
| Type | Description |
|---|---|
| IComponentCollection<IWebModule> | The modules. |
OnHttpException
Gets or sets a callback that is called every time a HTTP exception is thrown during the processing of a request.
This property can never be null.
Declaration
public HttpExceptionHandlerCallback OnHttpException { get; set; }
Property Value
| Type | Description |
|---|---|
| HttpExceptionHandlerCallback |
Remarks
The default value for this property is Default.
See Also
OnUnhandledException
Gets or sets a callback that is called every time an unhandled exception occurs during the processing of a request.
This property can never be null. If it is still
Declaration
public ExceptionHandlerCallback OnUnhandledException { get; set; }
Property Value
| Type | Description |
|---|---|
| ExceptionHandlerCallback |
Remarks
The default value for this property is Default.
See Also
Options
Gets the options object used to configure this instance.
Declaration
public TOptions Options { get; }
Property Value
| Type | Description |
|---|---|
| TOptions |
SessionManager
Gets or sets the registered session ID manager, if any.
A session ID manager is an implementation of
Note that this property can only be set before starting the web server.
Declaration
public ISessionManager? SessionManager { get; set; }
Property Value
| Type | Description |
|---|---|
| Nullable<ISessionManager> | The session manager, or null if no session manager is present. |
SharedItems
Gets a dictionary of data shared among the modules in a container.
This API mainly supports the EmbedIO infrastructure; it is not intended to be used directly from your code, unless to address specific needs in module development.
Declaration
public ConcurrentDictionary<object, object> SharedItems { get; }
Property Value
| Type | Description |
|---|---|
| ConcurrentDictionary<Object, Object> |
State
Gets the state of the web server.
Declaration
public WebServerState State { get; }
Property Value
| Type | Description |
|---|---|
| WebServerState | The state. |
See Also
Methods
AddCustomMimeType(String, String)
Adds a custom association between a file extension and a MIME type.
Declaration
public void AddCustomMimeType(string extension, string mimeType)
Parameters
| Type | Name | Description |
|---|---|---|
| String | extension | The file extension to associate to |
| String | mimeType | The MIME type to associate to |
Dispose()
Declaration
public void Dispose()
Dispose(Boolean)
Releases unmanaged and - optionally - managed resources.
Declaration
protected virtual void Dispose(bool disposing)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | disposing |
|
DoHandleContextAsync(IHttpContextImpl)
Asynchronously handles a received request.
Declaration
protected Task DoHandleContextAsync(IHttpContextImpl context)
Parameters
| Type | Name | Description |
|---|---|---|
| IHttpContextImpl | context | The context of the request. |
Returns
| Type | Description |
|---|---|
| Task | A |
Finalize()
Finalizes an instance of the WebServerBase<TOptions> class.
Declaration
protected void Finalize()
GetMimeType(String)
Gets the MIME type associated to a file extension.
Declaration
public string GetMimeType(string extension)
Parameters
| Type | Name | Description |
|---|---|---|
| String | extension | The file extension for which a corresponding MIME type is wanted. |
Returns
| Type | Description |
|---|---|
| String | The MIME type corresponding to |
HandleContextAsync(IHttpContextImpl)
Asynchronously handles a HTTP context, generating a suitable response for an incoming request.
This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.
Declaration
public Task HandleContextAsync(IHttpContextImpl context)
Parameters
| Type | Name | Description |
|---|---|---|
| IHttpContextImpl | context | The HTTP context. |
Returns
| Type | Description |
|---|---|
| Task | A |
OnBeforeLockConfiguration()
Declaration
protected override void OnBeforeLockConfiguration()
OnFatalException()
Called when an exception is caught in the web server's request processing loop.
This method should tell the server socket to stop accepting further requests.
Declaration
protected abstract void OnFatalException()
PreferCompression(String, Boolean)
Indicates whether to prefer compression when negotiating content encoding for a response with the specified content type, or whose content type is in the specified media range.
Declaration
public void PreferCompression(string mimeType, bool preferCompression)
Parameters
| Type | Name | Description |
|---|---|---|
| String | mimeType | The MIME type or media range. |
| Boolean | preferCompression | true to prefer compression; otherwise, false. |
Prepare(CancellationToken)
Prepares a web server for running.
Declaration
protected virtual void Prepare(CancellationToken cancellationToken)
Parameters
| Type | Name | Description |
|---|---|---|
| CancellationToken | cancellationToken | A |
ProcessRequestsAsync(CancellationToken)
Asynchronously receives requests and processes them.
Declaration
protected abstract Task ProcessRequestsAsync(CancellationToken cancellationToken)
Parameters
| Type | Name | Description |
|---|---|---|
| CancellationToken | cancellationToken | A |
Returns
| Type | Description |
|---|---|
| Task | A |
RunAsync(CancellationToken)
Starts the listener and the registered modules.
Declaration
public Task RunAsync(CancellationToken cancellationToken = null)
Parameters
| Type | Name | Description |
|---|---|---|
| CancellationToken | cancellationToken | The cancellation token; when cancelled, the server cancels all pending requests and stops. |
Returns
| Type | Description |
|---|---|
| Task | Returns the task that the HTTP listener is running inside of, so that it can be waited upon after it's been canceled. |
TryDetermineCompression(String, out Boolean)
Attempts to determine whether compression should be preferred when negotiating content encoding for a response with the specified content type.
Declaration
public bool TryDetermineCompression(string mimeType, out bool preferCompression)
Parameters
| Type | Name | Description |
|---|---|---|
| String | mimeType | The MIME type to check. |
| Boolean | preferCompression | When this method returns true, a value indicating whether compression should be preferred. This parameter is passed uninitialized. |
Returns
| Type | Description |
|---|---|
| Boolean | true if a value is found for |
Events
StateChanged
Declaration
public event EventHandler<WebServerStateChangedEventArgs>? StateChanged
Event Type
| Type | Description |
|---|---|
| Nullable<EventHandler<WebServerStateChangedEventArgs>> |