我们有几个ASP.NET 应用程序使用一个网站地图,其中填充过VB.NET 执行SqlSiteMapProvider例如现在 邪恶的代码.它是编制一个问题,然后安装并引用的针对服务器以及从我们当地。它的工作已经在产生很好几个月了。我还应该注意我们使用的SQL服务器2008年

今天,我们进来并注意到,在生产,也没有菜单项目正在显示在所有的地图中的产品的任何应用。开发和QA看起来很好。我们没有做任何维护到SQL服务器的产品在相当长的一段时间,很久以前我们没有实施SQLSiteMapProvider.我们还没有更新的网络应用的最近。

我做的第一件事就是把生产网络。config,并将其设置到我的网页。config在我IDE和运行的应用仍然相同的问题。这应该排除IIS问题,由于错误重复我的机器上。

由于这是一个有点紧迫,接下来的事情我做的是简单地插入一个虚拟记录进入该网站表在prod来看看会发生什么。噗,像变魔术一样,菜单项是恢复和切都很好。我已删除了虚拟的菜单项目,它没有同步的问题。

这是一个有点吓人,虽然我试图找出为什么会发生这种事情,以便它不会再次发生的未来。有没有人经历过这之前呢?如果你从来没有使用SqlSiteMapProvider-它只是使用SqlDependencyCache/ASP.NET 高速缓冲存储的菜单项的,那么如果结果设定的存储proc其返回本链接的变化,它告诉ASP.NET 这件事发生并且它重新填充的网站地图/cache...

也许这之间的连接的网络服务器和SQL服务器不知怎么死的吗?并插入一个记录作出它"唤醒"和重新连接了吗?也许有一个超时值或某种IsStillConnected()功能的地方,我需要检查在页面加载,以确保连接仍然是在拍?或者也许ASP.NET 认为所存储的proc回不值由于某种原因,直到我们插入一个记录表?有没有人见过这个问题吗?

许多在此先感谢任何的指导。

编辑:所有这些来自有一套临时关在我的储存proc.当心!这不是在MSDN docs任何地方和真拧我一段时间!

有帮助吗?

解决方案 2

检查我的编辑;)

此都来自我的存储过程具有SET NOCOUNT ON。谨防!这是不是在MSDN文档的任何地方,真的搞砸了我一段时间!

其他提示

SqlDependency是不完全是一个强大的稳定性。这里有一些文章,也许可以揭示一些光:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top