web.config:
<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD=+abc-def(;" />
データベースユーザーを削除して再作成することにより、INITIALDBでユーザー名にdb_ownerロールがあることを確認しました。SSMS (上記の UID と PWD を使用) 経由でサーバーに接続し、データベースを拡張することで、ユーザー名パスワードが機能することを確認しました。
何か案は?私は途方に暮れており、割り当てられたパスワードを簡単に変更することはできません...これらの文字をエスケープする必要はないと思いますが、明らかに問題があります。
アップデート:
エラーはパスワード文字とは関係ありませんでした。「データベースを開けません...ログインによって要求されました。ログインに失敗しました...」しかし、接続文字列から「初期カタログ」または「データベース」セクションを削除すると、接続は完全に機能しました。データベースには、データベースの名前とは異なる .MDF ファイル名が含まれていることが判明しました (例: my_db_name および db_name.mdf)。データベースまたは初期カタログ プロパティを指定した接続文字列は、このため接続できませんでした。デタッチし、MDF ファイル名を一貫性のあるものに変更し、データベースを再アタッチすると、実際に問題が解決されました。奇妙ですよね?