SiteMappathは、ASP.NET 4に表示されます
-
29-10-2019 - |
質問
ページにSiteMappathコントロールがあり、これはデフォルトのプロバイダーを備えたXML Web.SiteMapファイルにバインドされています。このサイトは何年もあり、最近Windows 2008 R2のIIS 7.5でASP.NET 4.0にアップグレードしました。何らかの理由で、約6〜12時間の操作の後(いつ正確にはわかりませんが、一貫性があります)、SiteMappathはすべての人にロードを停止します。アプリケーションプールを再起動するか、web.configまたはweb.sitemap xmlファイルを変更して保存すると、SiteMappathが再びロードを開始します。
誰かがこれを引き起こす可能性のあるものを持っていますか?プロセスエクスプローラーを使用して表示できるファイルを開いたままにしておくファイルハンドルはありません。
ありがとう、
ジョン
解決
私たちはこれに長い間苦労しましたが、最終的にマイクロソフトに何が起こっているのかを理解することができました。ショートストーリーは、MSがこのホットフィックスでそれを扱っています:http://support.microsoft.com/default.aspx?scid=kb; en-us;2472263
私たちの場合、Webサイトへの最初のリクエストがCookielessデバイスからのものである場合(この場合、ロシオンボット、Yandexでした)、サイトマップはCookiless URLSで構築され、キャッシュされます。その後、Cookieをサポートしたデバイスは、CookilessセッションのためにサイトマップがURLでキャッシュされた方法のために機能しません。最初の症状はランダムでしたが、最終的にはアプリプールのリサイクルに続いて、このボットからの最初のリクエストが続くことができました。
Cookieを強制したい場合に機能する別の回避策は、この変更をWeb.configに変更することです。
<authentication mode="Forms">
<forms cookieless="UseCookies" />
</authentication>
これにより、Cookieless URLを使用せずにサイトマップが構築されます。
お役に立てれば!!