2011-05-05 70 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