データベースに接続してメッセージを表示するだけの簡単なテストアプリケーションをC#(4.5)で作成しました。(基本的には、デプロイメントとDB接続をテストするためだけです。)ローカルワークステーションでは、すべてが正常に機能します。SQL Express 2012をインストールし、現在のユーザー(統合セキュリティ)として接続しますが、問題はありません。
ただし、Windows Server 2008に展開すると、アプリケーションはデータベースに接続できません。ログイン失敗エラーを取得し続けます。
サーバーで、SQL Express 2012と同じインストールを実行しました。コンソールアプリケーションを実行すると、管理者としてログインします。ミックスモード認証を有効にして、ユーザーを作成し、そのユーザーとして接続することさえ試みました。SQL Management Studioで接続できますが、アプリケーションは常にログイン失敗エラーを受け取ります。
Windows Server 2008には、.NETアプリケーションがSQLサーバーに接続できるように変更する必要がある隠しセキュリティ設定がありますか?アプリケーションではなくSSMSを介してデータベースにログインできる場合、この動作の原因は何ですか?
エラー:
System.Data.SqlClient.SqlException(0x80131904):ログインによって要求されたデータベース「TestDatabase」を開けません。ログインに失敗しました。ユーザー 'sa'のログインに失敗しました。
当然、これは、sa
テストのための最後の不便な努力として接続しようとしたときのエラーのバージョンです。TestUser
(このために作成したSQLユーザー)とPERSONALSERVER\Administrator
(アプリケーションを実行している現在ログインしているユーザー)でも同じエラーが発生します。
私が試した接続文字列は次のとおりです。
Data Source=localhost\sqlexpress2012;Initial Catalog=TestDatabase;Integrated Security=True
Data Source=localhost\sqlexpress2012;Initial Catalog=TestDatabase;User Id=TestUser;Password=testpassword