Expresswebを借りたは良いけど、よく考えたら特にやりたい動的コンテンツもなかったので、 あまり深く追求してこなかった私ですが、今回少し踏み込んでDB設定をしてみました。
それにしてもExpresswebに用意されたマニュアルの不親切なこと。
パスワードポリシーとかの存在を全く書いてないよ。
まあ安かろう不親切だろうってことなんですかね。
- はじめに
ASP.NET構成の設定値は初期状態のままだとApp_Dataの下にAspnetdb.mdfに保存される。
正直Expresswebで動かせるかどうかよく分からなかったのと、せっかく3インスタンスほどDB空間が提供されてるから、やはりそれを使ってみたい。
と、そんな程度の理由でDBを載せ替えてみることにした。
ということで備忘録代わりに記事にしてみた。
(1).ASP.NET構成のDB空間を作成する
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe
「アプリケーション サービスのために SQL Server を構成する」を選択して
DB名はデフォルトのaspnetdb以外にすること
(2).DB接続ユーザーの作成する
ManagementStudio(MSの純正SQL Server用GUIツール)の上でユーザーを作成する。
Expresswebのポリシーに引っ掛からないように以下のルールで生成する必要がある。
ユーザー名:4文字以上
パスワード:8文字以上英数記号が必要
※.作成したDBに対してユーザー権限に[db_owner]を付与しておくこと。
(3).接続文字列をWeb.configに設定する
[css]
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Persist Security Info=False;Server=PCNAME\SQLEXPRESS;Initial Catalog=hogedb;PASSWORD=$Hoge1234;User ID=hogera" providerName="System.Data.SqlClient" />
</connectionStrings>
[/css]
※.ExpresswebのDBサーバー名はExpresswebコントロールパネルにログインして
[スペース]-[(スペース名)]-[スペース詳細を表示]に記述してある
(4).ASP.NET構成の接続テスト
Web.configを保存したらASP.NET構成にて必要な設定を行う
(5).ローカル側にてデータのエクスポート
ManagementStudioにてDB名を右クリック [タスク]-[スクリプトの生成]にてクエリを生成する
(6).Expresswebにデータのインポート
基本的にExpresswebのSQLServer操作はmyLittleAdminというWebアプリにて操作するらしい。
こんなツール知らなかったけど、phpMyAdminよりは出来が良いかもしれないと個人的には思った。
myLittleAdminはコントロールパネルから[データベース]-[SQL Server 2008]-[データベースを参照]にて起動する。
起動したmyLittleAdminの[ツール]-[新しいクエリ]を開き、先ほど生成したクエリをペーストして[実行]ボタンを押せばインポート完了。
一応、これで作業は一通り完了。
ちなみに私の環境は以下の通りです。
Visual Studio 2008 Professional
SQL Server 2008 Express
なお、ここまでの説明で意味がサッパリな人はExpresswebを使わないほうが無難です。
あとHTTPモジュールが動かないのが解決できない。 気が向いたらサポートに問い合わせることにしよう。
などとここまで書いてから箇条書きのところに
<ol>を使おうとしたら、連続してないと駄目らしい。
勝手に妙なタグ補完されて、意図したレイアウトにできない。
有名だから使ってみたけど、こんな使いにくいブログにするんじゃなかった・・・。