[ASP.NET Core] WordPressの公開ページをASP.NET Coreで作る
ASP.NET Coreでデータベースに接続しようと思い、以下のような接続文字列を設定した。
// appsettings.json
{
// ...略...
"ConnectionStrings": {
"Server": "Server=localhost:9999;Database=db_name;Uid=some_user;Pwd=some_password;Charset=utf8"
}
// ...略...
}
しかしこれがどうしても繋がらなくて何時間も悩まされた。
ローカルの開発環境ではポート番号のないサーバを設定しており、それは問題なく動いていた。 本番環境に移行するにあたり、ポート番号のある本番用のサーバ名に書き換えたら動かなくなってしまった。
散々調べた結果、原因はどうということもないただの書式間違いだった。
接続文字列内のServer=localhost:9999
の部分だが、これはServer=localhost,9999
と書くのが正しい。
コロン「:
」ではなく「,
」で区切るのが正しいのだ。
WordPressからの移植作業だったため、wp-config.phpに書かれたサーバ名をそのままコピーしてしまったのが原因だった。
正しい接続文字列は次のようになる。
// appsettings.json
{
// ...略...
"ConnectionStrings": {
"Server": "Server=localhost,9999;Database=db_name;Uid=some_user;Pwd=some_password;Charset=utf8"
}
// ...略...
}
以下は.NETにおける接続文字列の解説だ。
よくよく見ればきちんと「,
」で区切る旨が明記されている。
最初にきちんとこれを確認すれば何時間も悩まされることもなかったのだが、人間の思い込みとは恐ろしいものである。
ドキュメントは大切。しっかり読もう。