4

私はasp.netでカスタムロールプロバイダーを使用していますが、プロバイダーがメモリにロードされると、Webアプリケーションが再起動されるまでメモリからドロップアウトしないようです(web.configファイルが変更されて保存されたときなど) )。さらに、その Web アプリケーションへのすべての要求は、ロール プロバイダーの 1 つのインスタンスを利用しているように見えます。

だから私の質問は: asp.net はいつロール プロバイダーのインスタンスを作成しますか? そして彼らの寿命は?asp.net はいつ新しいインスタンスを作成しますか? また、古いインスタンスを削除して新しいインスタンスを作成することにより、asp.net に現在のプロバイダー インスタンスを強制的に更新させる方法はありますか?

4

1 に答える 1

2

ASP.NETの設計では、プロバイダーがステートレスオブジェクトであると想定しています。したがって、プロバイダーは、いつ作成され、いつ終了するかを知る必要がないように設計する必要があります。基本的に、本当にそれを実行したい場合は、実際のロジックを別のクラスに配置して、ASP.NETに導入したプロキシクラスによってその作成と破棄が処理されるようにすることができます。

また、ASP.NETは、ロールプロバイダーオブジェクトをいつ作成するかを保証しません。静的コンストラクターのようなものです。それらが必要なときはいつでも存在するという事実だけに頼るべきです。

于 2009-01-02T21:07:34.127 に答える