SqlCacheDependency无法在配置中找到“Northwind”数据库错误

  今天在研究SqlCacheDependency时出现下面的错误
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

OutputCache 指令的“Northwind:Employees”SqlDependency 属性无效。

详细错误消息: 无法在配置中找到“Northwind”数据库。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: OutputCache 指令的“Northwind:Employees”SqlDependency 属性无效。

详细错误消息: 无法在配置中找到“Northwind”数据库。



后面对照了其他版本的代码后发现原来是是参考的代码outputcache指令没设置对,原来参考的代码版本
ASP.NET 缓存 SqlCacheDependency 监视数据库表变化

后面参考的代码
ASP.NET 2.0 中的SqlCacheDependency特性


错误总结如下
1)web.config配置如下
+展开
-XML
  <connectionStrings>
    <add name="dbconnectionString="server=.;database=Northwind;uid=cache;pwd=cache;providerName="System.Data.SqlClient"/>
  </connectionStrings>
<system.web>
    <caching>
      <sqlCacheDependency enabled="true">
        <databases>
          <add name="dbconnectionStringName="dbpollTime="10000"/>
        </databases>
      </sqlCacheDependency>
    </caching>
     </system.web>

其中pollTime节点的单位为毫秒。
2)使用SqlCacheDependency的页面outputcache指令html代码
+展开
-HTML
<%@ OutputCache Duration="3600" SqlDependency="db:Employees" VaryByParam="none" %>


发生错误的原因是:原来我的SqlDependency的值为SqlDependency="Northwind:Employees",而不是"db:Employees"。所以出错了。SqlDependency的值其实是web.config中
+展开
-HTML
<databases>
          <add name="db" connectionStringName="db" pollTime="10000"/>
        </databases>


name值,而不是连接字符串中连接到的数据库名称,然后加上冒号“:追踪的数据表名称”。

注意:追踪的表名称是区分大小写的,具体名称去要追踪的数据库中的表AspNet_SqlCacheTablesForChangeNotification中查看名称。
如果大小写不匹配,也会导致出现无法在配置中找到“Northwind”数据库错误的错误。

加支付宝好友偷能量挖...


原创文章,转载请注明出处:SqlCacheDependency无法在配置中找到“Northwind”数据库错误

评论(0)Web开发网
阅读(112)喜欢(0)asp.net-linq