System.Web.HttpException: 无法在配置中找到“Witkey68”数据库。
“/68Witkey/WebUISite”应用程序中的服务器错误。
--------------------------------------------
无法在配置中找到“Witkey68”数据库。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 无法在配置中找到“Witkey68”数据库。
源错误:
行 28: foreach(string tableName in tables )
行 29: {
行 30: dependency.Add(new SqlCacheDependency(dbName,tableName));
行 31:
行 32:
源文件: C:\Inetpub\wwwroot\68Witkey\TableCacheDependency\TableDependency.cs 行: 30
堆栈跟踪:
[HttpException (0x80004005): 无法在配置中找到“Witkey68”数据库。]
System.Web.Caching.SqlCacheDependencyManager.GetDatabaseConfig(String database) +3084607
System.Web.Caching.SqlCacheDependencyManager.InitPolling(String database) +277
System.Web.Caching.SqlCacheDependencyManager.EnsureTableIsRegisteredAndPolled(String database, String table) +98
System.Web.Caching.SqlCacheDependency.GetDependKey(String database, String tableName) +57
System.Web.Caching.SqlCacheDependency..ctor(String databaseEntryName, String tableName) +37
Witkey.TableCacheDependency.TableDependency..ctor(String configKey) in C:\Inetpub\wwwroot\68Witkey\TableCacheDependency\TableDependency.cs:30
Witkey.TableCacheDependency.Task..ctor() in C:\Inetpub\wwwroot\68Witkey\TableCacheDependency\Task.cs:8
[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +103
System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) +261
System.Activator.CreateInstance(Type type, Boolean nonPublic) +66
System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1036
System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +114
System.Reflection.Assembly.CreateInstance(String typeName) +36
Witkey.CacheDependencyFactory.DependencyAccess.LoadInstance(String className) in C:\Inetpub\wwwroot\68Witkey\CacheDependencyFactory\DependencyAccess.cs:16
Witkey.CacheDependencyFactory.DependencyAccess.CreateTaskDependency() in C:\Inetpub\wwwroot\68Witkey\CacheDependencyFactory\DependencyAccess.cs:70
Witkey.CacheDependencyFactory.DependencyFacade.GetTaskDependency() in C:\Inetpub\wwwroot\68Witkey\CacheDependencyFactory\DependencyFacade.cs:130
Witkey.Web.Controls_TaskControl.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\68Witkey\WebUISite\Controls\TaskControl.ascx.cs:27
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.BasePartialCachingControl.LoadRecursive() +113
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061
--------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
以下为TableDependency.cs
using System;
using System.Configuration;
using System.Web.Caching;
using Witkey.ICacheDependency;
namespace Witkey.TableCacheDependency
{
public abstract class TableDependency : Witkey.ICacheDependency.IWitkeyCacheDependency
{
// This is the separator that 's used in web.config
protected char[] configurationSeparator = new char[] { ', '};
protected AggregateCacheDependency dependency = new AggregateCacheDependency();
public AggregateCacheDependency GetDependency()
{
return dependency;
}
public TableDependency (string configKey)
{
//make configuration information
string dbName=ConfigurationManager.AppSettings[ "CacheDatabaseName "];
string tableConfig=ConfigurationManager.AppSettings[configKey];
//split arrary into individual(单个的) words
string[] tables=tableConfig.Split(configurationSeparator);
//take talbeName add to tables
foreach(string tableName in tables )
{
dependency.Add(new SqlCacheDependency(dbName,tableName));
}
}
}
}
Web.config
<add key= "CacheDatabaseName " value= "Witkey68 "/>
<connectionStrings>
<add name= "SqlConnString " connectionString= "Server=localhost; user id=witkey;pwd=pass@word123;database=Witkey68 ;min pool size=4; max pool size=4 " providerName= "System.Data.SqlClient "/>
</connectionStrings>
[解决办法]
加上
<system.web>
<caching>
<sqlCacheDependency enabled= "true " pollTime= "30000 ">
<databases>
<add name= "Witkey68 " connectionStringName= "SqlConnString " />
</databases>
</sqlCacheDependency>