忘れてしまいそうなので自分用メモとして・・。かなり乱筆というか適当です。
ちなみに、Windows Server 2008 R2でもWindows Server 2003時代に書いたClassic ASPが動きます。そして、SQL Server 2000のデータベースファイルは、SQL Server 2008 R2でもそのままアタッチできます。ASP+SQL Server 2000なシステムはレガシー過ぎて移行できないんじゃないかなんて想像していましたが、簡単すぎて拍子抜けしました。どちらかといえば、移行作業よりも、IISとSQL Serverの設定がはまりどころですね。
SQL Server 2000からSQL Server 2008 R2 Expressへのデータベースの移行
※SQL Server 2008 R2とSQL Server Management Studioがインストールされており、設定が完了してることが前提。
- SQL Server 2000がインストールされたサーバのデータベースをデタッチする
- デタッチしたデータベースファイル(.mdf,.ldfファイル)をネットワークやUSBメモリ等経由で、SQL Server 2008 R2 Expressがインストールされたサーバのデータフォルダにコピーする
(C:\Program Files\Microsoft SQL Server\MSSQL10_50.<インスタンス名>\MSSQL\DATAのはず) - SQL Server 2000と同じデータベースユーザーを追加する
([セキュリティ]-[ログイン]を右クリック→[新しいログイン]をクリックでユーザーの追加が可能) - SQL Server Management Studioで、コピーしたデータベースをアタッチする
- 以下のSQL文をアタッチしたDBの数だけ実行する
USE
EXEC sp_change_users_login 'Update_One', 'hoge', 'hoge'
※hoge=データベースユーザー名
※EXEC sp_change_users_loginは、DBに属するユーザーの数だけ実行する
※参考:SQL Server 別のSQL Serverのバックアップを復元した時にアクセスできなくなり,ログインのプロパティ等でエラーになるのを修復する方法: T_Nary ブログ
SQL ServerにODBCする際の事前設定
※ODBC設定を行うサーバがSQL Serverが動作するサーバであることが前提。そうでない場合は、サーバー名のlocalhostのくだりを、SQL Serverが動作するサーバのアドレスに変更する。
- 「SQL Server 構成マネージャー」を実行する
[スタート]-[すべてのプログラム]-[Microsoft SQL Server 2008 R2]-[構成ツール]-[SQL Server 構成マネージャー]をクリック - [SQL Server ネットワークの構成]-[<インスタンス名>のプロトコル]をクリック
- [TCP/IP]を右クリック→[有効化]をクリック
- [スタート]-[管理ツール]-[データ ソース(ODBC)]をクリック
- [システムDSN]タブをクリック
- [追加]をクリック
- 「SQL Server」を選択
- データソース名はSQL Server 2000のODBC設定と合わせる、サーバーはlocalhostとする
- これ以降はSQL Server 2000と同じ設定とする(めんどくさいので適当・・)
SQL Serverにつながらない場合の対処方法
ファイアウォールにより遮断されてODBCがつながらない場合がある。以下の方法でファイアウォールのポリシーを変更して1433ポートへの接続を許可するようにする。
- [管理ツール]-[セキュリティが強化されたWindowsファイアウォール]をクリック
- 左ペインの[受信の規則]を右クリック→[新規の規則]をクリック
- [ポート]を選択して[次へ]をクリック
- [特定のローカルポート]で1433と入力して[次へ]をクリック
- [接続を許可する]を選択して[次へ]をクリック
- 「この規則はいつ適用しますか?」と表示され、ドメイン、プライベート、パブリックの3つが表示される。とりあえず、まずは繋がることが大事なので、すべてチェックして[次へ]をクリック。(本番じゃなくてローカルで動かしていれば後回しでも良いよね?)
- 名前を付けて[完了]をクリック
IISでClassic ASPのエラーメッセージを表示する
IIS7以降はIIS6までのようにエラーメッセージがデフォルトで表示されないようだ。なので、エラーメッセージが表示されるように変更。
- IISマネージャーを開く
- エラーメッセージを表示したいサイトを選択
- [エラーページ]-[機能設定の編集](右ペイン)の順にクリック
- [詳細なエラー]を選択して[OK]をクリック
Classic ASPスクリプト実行時に親パスがうんぬんと怒られる場合
本来はスクリプト側を修正すべきだけど、とりあえず動かしたいのであれば以下の設定を行う。
BASP21のインストール
ASP時代のシステムによってはBASP21なるライブラリを使用している場合がある。
BASP21は以下のサイトよりダウンロード可能。
BASP21 DLL