web-dev-qa-db-ja.com

AzureがホストするWebアプリケーションからのSQL Azureでの「ユーザーのログインに失敗しました」

SQL Azureデータベースを使用するAzure ASP.net MVC Webアプリケーションがあります。数か月間は問題なく動作していましたが(何らかの理由でAzureがサーバーの名前を変更したため、再度設定する必要がありましたが、すべて正常に動作しました)、現在は動作していません。

最初に、彼らはサーバー名を再度変更したのではないかと思いましたが、SSMSを開き、パスワードをリセットした後、再び接続しました。したがって、アプリケーションの接続文字列でそのパスワードを変更して、すべてが機能することをテストします。そうです。デバッグとテストは正常に機能します。だから私は公開しましたが、公開するとアプリケーションがエラーをスローします

Login failed for user 'my_username'

私はこの投稿を確認します アプリケーションではAzure SQLデータベース "ユーザーのログインに失敗しました"が、SSMSでは正常に機能します これは同じように見えましたが、エラーが発生することなく実行できません。

接続文字列をこれから変更しました

Server=tcp:SERVER_NAME.database.windows.net,1433;Database=my_db;User ID=my_username@qtdhcrrxmi;Password={my_password}; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

これに

Server=tcp:SERVER_NAME.database.windows.net,1433;Initial Catalog=my_db;Persist Security Info=False;User ID={my_username};Password={my_password};Pooling=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

azureポータルのデータベース接続文字列に表示されます。私は属性を削除しただけです

 Data Source=SERVER_NAME.database.windows.net;

また、公開手順で接続文字列が変更されないことも確認しました。

ただし、デバッグとSSMSでは機能しますが、本番環境では機能しません。

6
Ricker Silva

問題は接続文字列にあることが判明しました。考慮すべき点がいくつかあります。

まず、Visual Studioの[設定]タブにある発行ウィザードの[実行時にこの接続文字列を使用する(更新先のweb.configを更新)]というオプションがあります。これは、何らかの理由で、チェックされているかどうかにかかわらず、機能しないようです。しかし、これはそもそもオプションかもしれません。

Visual Studio Azure hosted publish wizard

接続文字列が設定されている別の場所は、Azure管理ポータルです。 Webアプリケーションの設定の接続文字列で、アプリケーションで効果的に使用されている接続文字列を確認できます。私の場合、使用した公開ウィザードの設定に関係なく、この接続文字列は間違っていました。削除してデータベースのユーザー名とパスワードを使用して作成し直したところ、すべてが再び機能しました。

enter image description here

8
Ricker Silva

接続文字列が正しく、SSMS経由でDBサーバーに接続できるにもかかわらず、「ユーザー 'null'のログインに失敗しました」というエラーメッセージが表示される理由を理解するために2日間も苦労しました。

Azureアカウントのアプリケーション設定で接続文字列を削除しようとしたことがわかりました。そしてそれは働いた。

enter image description here

5
Jen

同じエラーメッセージが表示されましたが、別の方法で解決しました。新しいデータベースを作成する際の大きな問題は、Visual Studio SolutionsからAzure用の新しいWebアプリを作成したときに、そのデータベースの新しいユーザー名とパスワードを作成するように要求することでした。ただし、そのデータベースは既存のデータベースserverにすでにテザリングされている可能性が高いため、ユーザー名とパスワードを選択した直後に、作成したものと一致するようにサーバーのパスワードをリセットする必要があります。

(または、既存のAzureサーバーのパスワードを確認し、新しいパスワードが同じであることを確認してください。)

Visual Studio --->ソリューション---> Web-Appプロジェクト--->(右クリック)公開----->プロファイル----> Microsoft Azure App Service ---- New [ここからスタート]

0
mmmFood