2011-05-05 25 views
2

我们在页面上有一个SiteMapPath控件,并且这个控件绑定到一个带默认提供程序的XML Web.sitemap文件。我们已经有了这个站点多年,并且最近在Windows 2008 R2上的IIS 7.5上升级到了ASP.NET 4.0。出于某种原因,在运行大约6-12小时后(不确定何时,但是一致),SiteMapPath将停止为每个人加载。如果我们重新启动应用程序池或修改并保存web.config或web.sitemap XML文件,SiteMapPath将再次开始加载。SiteMapPath停止在ASP.NET 4中显示

有没有人有任何想法可能会导致此?有没有文件句柄保持文件打开,我可以看到使用进程管理器。

感谢,

约翰

回答

2

我们挣扎与此很长一段时间,但最终能得到微软弄清楚发生了什么事情。 http://support.microsoft.com/default.aspx?scid=kb;en-US;2472263

在我们的情况下,如果该网站的第一个请求是不使用Cookie的设备(在我们的情况下,它是一些Russion机器人,Yandex的),网站地图是:短篇小说MS已经与此修复程序解决这用自己的网址构建并缓存。然后,任何支持cookie的设备都将无法工作,因为站点地图的方式被缓存为厨师会话的URL。虽然最初的症状是随机的,但我们最终能够将其缩小到应用程序池再循环,随后是来自此机器人的第一个请求。

如果要强制饼干其作品的另一种解决方法是使此更改的web.config:

<authentication mode="Forms"> 
    <forms cookieless="UseCookies" /> 
</authentication> 

这迫使不使用Cookie的网址要构建的地图。

希望这有助于!

+0

哇,这是一个非常糟糕的错误!使我在多个层面上提出了表单身份验证问题。我们更改为UseCookies用于无Cookie模式,并没有任何其他问题。 – 2011-09-07 03:56:11