.NET 3.5 WebForms サイトで、エラー ログが次のエラー メッセージでいっぱいになることがあるという問題が発生しています。
「同じ ID 'ctl09' を持つ複数のコントロールが見つかりました。FindControl では、コントロールに一意の ID が必要です。」
ローカルでデバッグしているときに例外を見たことがなく、リモートデバッグセッションを実行するのに十分な時間でエラーログにキャッチしたことがないため、例外についてはほとんど知りません。アプリケーション プールのリサイクルによって問題が解決されることは知っています。
これは、サイト内の 1 つの [高トラフィック] ページにのみ影響します。奇妙なことに、このサイトでは 4.0 より前の ID 生成ロジックが使用されています。そのため、ページが機能している場合、ビュー ソース全体に、自動生成されたコントロール ID プレフィックスの後に「実際の」ID (ctl09_someID_someOtherID) が続く html 要素はありません。
2 つの主な質問ですが、アイデアは大歓迎です。
- コントロールがランダムに正しく構築されなくなった場合はどうなりますか?
- Global.asax 以外に、このエラーをトラップしてコントロールを強制的に再コンパイルするにはどうすればよいですか? アプリプールをリサイクルしますか?
私はかなり困惑しています。