Class MediaHandlerBase

Abstract media handler that can be used for any type of binary streams or files

Inheritance
System.Object
MediaHandlerBase
Implements
System.Web.IHttpHandler
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: EPiServer.Web
Assembly: EPiServer.Framework.dll
Version: 8.11.0
Syntax
public abstract class MediaHandlerBase : IHttpHandler

Constructors

MediaHandlerBase()

Initializes a new instance of the MediaHandlerBase class.

Declaration
protected MediaHandlerBase()

Properties

IsReusable

Declaration
public bool IsReusable { get; }
Property Value
Type Description
System.Boolean

Methods

BeginTransmitStream(HttpContextBase, Stream, AsyncCallback, Object)

Async variant of transmitstream that uses from IHttpAsyncHandler.

Declaration
protected virtual IAsyncResult BeginTransmitStream(HttpContextBase context, Stream source, AsyncCallback cb, object extraData)
Parameters
Type Name Description
System.Web.HttpContextBase context
System.IO.Stream source
System.AsyncCallback cb
System.Object extraData
Returns
Type Description
System.IAsyncResult
Remarks

This method only supports streams that has Seek capabilities. Use TransmitStream if the stream doesn't support this.

EndTransmitStream(IAsyncResult)

Declaration
protected virtual bool EndTransmitStream(IAsyncResult res)
Parameters
Type Name Description
System.IAsyncResult res
Returns
Type Description
System.Boolean

NotModifiedHandling(HttpContextBase, DateTime)

Handles "Not Modified" 304 status notification.

Declaration
protected bool NotModifiedHandling(HttpContextBase context, DateTime modifiedDate)
Parameters
Type Name Description
System.Web.HttpContextBase context

The context.

System.DateTime modifiedDate

The modified date.

Returns
Type Description
System.Boolean

True if the request will return a Not Modified response.

ProcessRequest(HttpContext)

Processes the request

Declaration
public void ProcessRequest(HttpContext context)
Parameters
Type Name Description
System.Web.HttpContext context

The context

ProcessRequestInternal(HttpContextBase)

The reason for keeping the actual "work code" in a separate 'ProcessRequestInternal' function was that it could possibly be called from both IHttpHandler.ProcessRequest as well as from IHttpAsyncHandler.BeginProcessRequest()

Declaration
protected abstract bool ProcessRequestInternal(HttpContextBase context)
Parameters
Type Name Description
System.Web.HttpContextBase context
Returns
Type Description
System.Boolean

True if request was handled, otherwise false

SetCachePolicy(HttpContextBase, DateTime)

Configures cache policy of a static file based on configuration rules

Declaration
protected virtual void SetCachePolicy(HttpContextBase context, DateTime fileChangedDate)
Parameters
Type Name Description
System.Web.HttpContextBase context

The HttpContext for the current request.

System.DateTime fileChangedDate

The changed date for the file that is being requested.

Remarks

Configuration setting expirationTime in web.config states the Expires date that is added to the Resonse (which browsers typically uses to control how long to cache the file before a new request). If TimeSpan.Zero is specified in expirationTime no Expires date is added which most browsers will interpret so they make a request for the file each time but since Last-Modified is added a 304 (Not modified) will be returned by server if file has not changed.

TransmitFile(HttpContextBase, String)

Declaration
protected virtual void TransmitFile(HttpContextBase context, string filePath)
Parameters
Type Name Description
System.Web.HttpContextBase context
System.String filePath

TransmitStream(HttpContextBase, Stream)

Declaration
protected virtual void TransmitStream(HttpContextBase context, Stream source)
Parameters
Type Name Description
System.Web.HttpContextBase context
System.IO.Stream source

Implements

System.Web.IHttpHandler