私たちのデータベースに接続するASP.NETアプリケーションがあります。この接続は、データベースへのアクセス方法(ユーザー名、パスワードなど)に関する情報を含むXML設定ファイルを使用して処理します。しかし、特定のページにアクセスしようとすると、黄色の死の画面とLogin failed for user xxx
というメッセージで挨拶されます。'/'アプリケーションのサーバーエラー - ユーザーのログインに失敗しました
ローカルホストとしてローカルに実行すると、このエラーは表示されません。サービスをサーバーに展開すると、このエラーメッセージが表示されます。接続文字列は次のようになります。
<add key="DBConnection" value="Data Source=[ServerNameHere];Initial Catalog=[DBNameHere];MultipleActiveResultSets=True;User Id=[usernamehere];Password=[passwordhere];" />
私たちのSQL Serverでは、SQL ServerとWindows認証モードの両方が有効になっています。私はsaアカウントのログインプロパティをチェックし、 "許可"を "許可"に設定し、 "ログイン"を "有効"に変更しました。どちらも同じ問題を示しています。サーバーとデータベースは同じマシン上にあります。
これは、同じ問題を抱えた他の人たちの最も一般的な解決策でした。私たちは問題を解決するために何か他の方法がありますか?
最後の注意点は、私たちがLoging failed for user xxx
を得るとき、xxx
はマシンの名前であるということですので、我々は死の黄色の画面を取得するときには、Domain\MachineName$
のように見えます。
EDIT:スローされる例外は次のとおりです。 System.Data.SqlClient.SqlException: Login failed for user 'Domain\MachineName$'.
私のVisual Studioでは "continue on exception"が無効になっていますが、このエラーはアプリケーションをローカルでデバッグするときには見つかりません。
例外はスローされますか?サーバーからデータベースにアクセスできますか?エラーログには何が表示されますか?データベースユーザーのドメインは正しいですか? – user1666620
本当にあります!投稿を更新します – Novastorm
作業ページは、同じ接続文字列を使用して例外をスローするデータベースと同じデータベースにアクセスしますか? – bassfader