This documentation is archived and is not being maintained.

TableNotEnabledForNotificationException Class

The exception that is thrown when a SqlCacheDependency class is used against a database table that is not enabled for change notifications.

Namespace:  System.Web.Caching
Assembly:  System.Web (in System.Web.dll)

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class TableNotEnabledForNotificationException : SystemException

The following code example attempts to create a SqlCacheDependency object and add an item to the Cache with a dependency on the SqlCacheDependency object. If the SQL Server database table is not enabled for dependency notifications, the TableNotEnabledForNotificationException is thrown and handled by calling the SqlCacheDependencyAdmin.EnableTableForNotifications method.

public void Page_Load(object Src, EventArgs E) 
    // Declare the SqlCacheDependency instance, SqlDep. 
    SqlCacheDependency SqlDep = null; 

    // Check the Cache for the SqlSource key.  
    // If it isn't there, create it with a dependency  
    // on a SQL Server table using the SqlCacheDependency class.  
    if (Cache["SqlSource"] == null) { 

        // Because of possible exceptions thrown when this  
        // code runs, use Try...Catch...Finally syntax.  
        try { 
            // Instantiate SqlDep using the SqlCacheDependency constructor. 
            SqlDep = new SqlCacheDependency("Northwind", "Categories"); 

        // Handle the DatabaseNotEnabledForNotificationException with  
        // a call to the SqlCacheDependencyAdmin.EnableNotifications method.  
        catch (DatabaseNotEnabledForNotificationException exDBDis) { 
            try { 

            // If the database does not have permissions set for creating tables,  
            // the UnauthorizedAccessException is thrown. Handle it by redirecting  
            // to an error page.  
            catch (UnauthorizedAccessException exPerm) { 

        // Handle the TableNotEnabledForNotificationException with  
        // a call to the SqlCacheDependencyAdmin.EnableTableForNotifications method.  
        catch (TableNotEnabledForNotificationException exTabDis) { 
            try { 
                SqlCacheDependencyAdmin.EnableTableForNotifications("Northwind", "Categories"); 

            // If a SqlException is thrown, redirect to an error page.  
            catch (SqlException exc) { 

        // If all the other code is successful, add MySource to the Cache  
        // with a dependency on SqlDep. If the Categories table changes,  
        // MySource will be removed from the Cache. Then generate a message  
        // that the data is newly created and added to the cache.  
        finally { 
            Cache.Insert("SqlSource", Source1, SqlDep); 
            CacheMsg.Text = "The data object was created explicitly."; 


    else { 
        CacheMsg.Text = "The data was retrieved from the Cache."; 


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0