WCF Data Servicesを使いこなそう(4)
今回はWCF Data ServiceをExpressWebに設置するの第2弾。
おそらく次回やったら、同じところではまりそうなのでエントリ。
ExpressWebにSQLSERVERベースのアプリを設置するの巻
1.ExpressWeb側の設定
ExpressWebでは、mdfをアタッチして利用することは出来ないようなので、予めEW側でDBとユーザーを作っておく必要があります。
移行方法はこちらを参照。
http://secure.windowshosting.jp/knowledgebase.php?action=displayarticle&id=100
ちなみに、ExpressWebではmdfは300Mまでみたいです。
http://secure.windowshosting.jp/knowledgebase.php?action=displayarticle&id=20
本格的に使うのであれば、AzureやAWSを検討しないといけないようです。
たしかsdf(SQLSERVERCompact)は4Gまでいけるんじゃなかったっけ?
性能はどうなのか分かりませんが、ExpressWebでの運用であればsdfがよいのかな?
2.VisualStudio2010の設定など
(1)「SQLのパッケージ化/発行」
プロジェクトのプロパティーを選択すると出てくる「SQLのパッケージ化/発行」を設定する必要があります。
Web.configからインポートボタンを押すと、接続情報が自動的に取り込まれます。
複数出てくる場合は、ターゲットDBへの接続情報以外は削除しておきます。
「対象データーベースの接続文字列」にはExpressWeb側DBへの接続文字列を記入します。
http://secure.windowshosting.jp/knowledgebase.php?action=displayarticle&id=107
ここに記入した接続文字列は、配置する場合だけに利用されます。
アプリケーションで利用する接続文字列はやはりweb.configに設定する必要があります。
「ソースデータベースの情報」
既存の...にチェックを入れてください。先にインポートしているのでソースデーターベース接続文字列は既に設定されているはずです。
スクリプトオプションは、状況に応じて選択してください。
(2)web.config
ソリューションエクスプローラーで,全てのファイルを表示。
するとweb.configの下に、web.debug.configとweb.release.configが出てきます。
web.release.configを開くと
以下の例では、"Match" ロケーターで "MyDB" という値の "name" 属性が見つかった
場合にのみ、"SetAttributes" 変換により "connectionString" の値が変更され、
"ReleaseSQLServer" が使用されるようになります。
とコメントがあります。
この通り接続文字列を記入しておくと、releaseで配置した時に置き換えてくれるので便利!
3.2回目以降の配置。
DBが既に作成されているので、このままではエラーになってしまいます。
「Webのパッケージ化/発行」で「SQLのパッケージ化/発行」タブで構成した...のチェックを外すとDBを作成しなくなります。
以上メモ!