AspNet.OutputCache.NCache 5.3.7

dotnet add package AspNet.OutputCache.NCache --version 5.3.7
                    
NuGet\Install-Package AspNet.OutputCache.NCache -Version 5.3.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AspNet.OutputCache.NCache" Version="5.3.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AspNet.OutputCache.NCache" Version="5.3.7" />
                    
Directory.Packages.props
<PackageReference Include="AspNet.OutputCache.NCache" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AspNet.OutputCache.NCache --version 5.3.7
                    
#r "nuget: AspNet.OutputCache.NCache, 5.3.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AspNet.OutputCache.NCache@5.3.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AspNet.OutputCache.NCache&version=5.3.7
                    
Install as a Cake Addin
#tool nuget:?package=AspNet.OutputCache.NCache&version=5.3.7
                    
Install as a Cake Tool

AspNet.OutputCache.NCache

NCache Output Cache Provider for ASP.NET applications. This package lets you store ASP.NET Output Cache content in NCache, providing a fast, distributed, and highly available alternative to the default in-memory output cache—allowing cached page output to be shared across multiple web servers while reducing redundant page rendering and database calls.

Installation

Install-Package AspNet.OutputCache.NCache

or, using the .NET CLI:

dotnet add package AspNet.OutputCache.NCache

What is Installed

Installing this package adds the following NCache configuration files to your project:

  • client.ncconf — Defines the cache client settings, including the cache name and the list of server nodes the client connects to.
  • config.ncconf — Contains the cache configuration (cache topology, partitions, eviction policy, etc.) used when the cache is created/registered.
  • tls.ncconf — Contains TLS/SSL settings used to secure communication between the client and the NCache cluster, if enabled.

Prerequisites

  • .NET Framework application.
  • NCache SDK 5.3.7.1 or later.
  • An NCache 5.3.7 (or later) server should be up and running, with the target cache already created/registered on it.

Getting Started

Setting up NCache

Before running your application (if NCache is not installed on the current machine), you need to update client.ncconf so the client knows which cache to connect to and where to find it:

  1. Open client.ncconf.
  2. Locate the cache entry named myCache and rename it to the name of your actual cache (the cache you created/registered on the NCache server).
  3. Under the server settings, update the server address to point to one of the nodes in the cluster where that cache is running.

Example:

<cache id="myCache" ... >
  <server name="10.0.0.1" ... />
</cache>

Change myCacheYourCacheName, and 10.0.0.1 → the IP/hostname of a node hosting YourCacheName.

Setting up Package

  1. Register NCache as the ASP.NET Output Cache provider.
  2. Update web.config (see Configuration section below).
  3. Add the OutputCache directive to pages whose rendered output should be cached.

Configuration

ASP.NET Framework (web.config):

<caching>
  <outputCache defaultProvider="NOutputCacheProvider">
    <providers>
      <add
        name="NOutputCacheProvider"
        type="Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider"
        cacheName="YourCacheName"
        exceptionsEnabled="false"
        enableLogs="false"
        enableDetailLogs="false"
        writeExceptionsToEventLog="false"/>
    </providers>
  </outputCache>
</caching>

Enable output caching on pages by adding the OutputCache directive:

<%@ OutputCache Duration="300" VaryByParam="ID" %>

Adjust the cache name and other settings as needed for your environment.

Using Output Cache with Custom Hooks

NCache supports Custom Hooks for the Output Cache Provider, giving you finer control over how cached page output is organized within the cluster. A custom hook is an intermediate execution point that runs after the framework generates page output but before it's written to the cache, letting you attach Groups, Tags, and Key Dependencies to cached entries based on your own business logic — which makes the cached data easier to search, group, and manage.

Note: Custom Hooks are not supported by NCache OSS; they require the Enterprise edition.

Prerequisites for Custom Hooks

  • The AspNet.OutputCache.NCache NuGet package (already installed as part of this integration).
  • Your Enterprise NCache cluster must be up and running.
  • The Alachisoft.NCache.OutputCacheProvider namespace referenced in your application (e.g., in Startup.cs).
  • Any data you attach via the hook (groups, tags, dependencies, etc.) must be serializable.

Modify web.config

Add hookAssemblyName and hookClassName attributes to the provider entry so NCache knows which assembly and class implement your hook:

<caching>
  <outputCache defaultProvider="NOutputCacheProvider">
    <providers>
      <add
        name="NOutputCacheProvider"
        type="Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=cff5926ed6a5376"
        cacheName="YourCacheName"
        exceptionsEnabled="false"
        enableLogs="true"
        writeExceptionsToEventLog="false"
        hookAssemblyName="OutputCache, Version=x.x.x.x, Culture=neutral, PublicKeyToken=null"
        hookClassName="Sample.OutputCacheProvider.OutputCacheHook.OutputCacheHookSample"/>
    </providers>
  </outputCache>
</caching>

Replace Version=x.x.x.x with the actual NCache SDK version you have installed, and point hookAssemblyName / hookClassName at your own hook assembly and class.

Implementing IOutputCacheHook

Create a class that implements IOutputCacheHook:

class OutputCache : IOutputCacheHook
{
    public void Initialize()
    {
        // initialize required elements here, according to business logic.
    }

    public CacheMetadata OnCachingOutput(HttpContext context, string key, object value, CacheOperation operation, ref DateTime utcExpiry)
    {
        CacheMetadata cacheMetaData = null;

        if (context != null)
        {
            cacheMetaData = new CacheMetadata();
            // Put required business logic to categorize input parameter key in desired group

            // Groups, sub groups, tags, named tags and dependencies can be assigned
            // to object of cacheMetaData which is returned to be inserted into cache

            cacheMetaData.GroupName = "vendorState";
            cacheMetaData.Dependency = new KeyDependency(key);
            utcExpiry = DateTime.Now.AddMinutes(5);
        }

        return cacheMetaData;
    }

    public void Dispose()
    {
        // Dispose the initialized elements here
    }
}

Note: Wrap your hook logic in appropriate exception handling to keep the operation fail-safe (see NCache's guidance on handling failures).

Hook members

Member Description
Initialize Sets up any elements the hook needs before it starts running.
OnCachingOutput Called by the framework after output is generated but before it's inserted into the cache. Receives the current HttpContext, the cache key, the generated value, and the CacheOperation (Add or Set). The utcExpiry parameter is passed by reference so you can override the default expiration. Returns a CacheMetadata object where you can set group, subgroup, tag, named tag, and dependency information for the entry.
Dispose Releases any resources the hook is holding once it's no longer needed.

Resources

Technical Support

Alachisoft provides various technical support resources.

Visit the Alachisoft Support Center to select a support resource appropriate for your issue.

To request additional features or report a documentation discrepancy, contact support@alachisoft.com.

License

Copyright © 2026 Alachisoft. All rights reserved.

Product Compatible and additional computed target framework versions.
.NET Framework net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.3.7 108 8/3/2026
5.3.6.1 301 10/10/2025
5.3.6 240 8/13/2025
5.3.5.2 267 6/3/2025
5.3.5.1 244 5/30/2025
5.3.5 311 5/16/2025
5.3.0 1,216 4/12/2022
5.2.1 1,041 10/12/2021
5.2.0 992 3/30/2021