CreateUserWizardコントロールを使用してメンバーを登録しようとすると、以下のエラーが出る。
プロシージャまたは関数 'aspnet_Membership_CreateUser' にはパラメータ '@TimeZoneAdjustment' が必要ですが、指定されませんでした。 .
一度、SQL Server 2005 Express Editionを削除して、再インストールしたことが原因なのかもしれない。
とりあえず、
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exeを実行。ウイザードが起動する。
サーバー名に、「<コンピュータ名>\SQLExpress」(*1)を指定して実行する。しかし、やはり同一のエラーが出る。
しばし悩んだが、ソリューションエクスプローラからApp_Data内にあるASPNETDB.MDFを削除して実行し直したところ、うまくいった。もちろん、ASPNETDB.MDFは再生成された。
どうやら、aspnet_regsql.exeは、SQL Server 2005 Express Editionにデフォルトでaspnetdbというガラを作るだけのようである。実際にメンバーを保存するDBは、各プロジェクト毎にApp_Data内にASPNETDB.MDFがコピーされ、そこに保存されている。なるほど、MDFというファイルとしてデータベースを簡単に管理できるSQL Server 2005 Express Editionの特性をうまく利用していると改めて関心した。こういうSQL Server 2005 Express Editionの特性があるからこそ、当初サポートされていたmdbが無くなったのであろう。
*1 「.\SQLExpress」の方が良かったかと思う。サーバー名が固有にならず汎用的になるので。