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では機能しますが、本番環境では機能しません。
問題は接続文字列にあることが判明しました。考慮すべき点がいくつかあります。
まず、Visual Studioの[設定]タブにある発行ウィザードの[実行時にこの接続文字列を使用する(更新先のweb.configを更新)]というオプションがあります。これは、何らかの理由で、チェックされているかどうかにかかわらず、機能しないようです。しかし、これはそもそもオプションかもしれません。
接続文字列が設定されている別の場所は、Azure管理ポータルです。 Webアプリケーションの設定の接続文字列で、アプリケーションで効果的に使用されている接続文字列を確認できます。私の場合、使用した公開ウィザードの設定に関係なく、この接続文字列は間違っていました。削除してデータベースのユーザー名とパスワードを使用して作成し直したところ、すべてが再び機能しました。
同じエラーメッセージが表示されましたが、別の方法で解決しました。新しいデータベースを作成する際の大きな問題は、Visual Studio SolutionsからAzure用の新しいWebアプリを作成したときに、そのデータベースの新しいユーザー名とパスワードを作成するように要求することでした。ただし、そのデータベースは既存のデータベースserverにすでにテザリングされている可能性が高いため、ユーザー名とパスワードを選択した直後に、作成したものと一致するようにサーバーのパスワードをリセットする必要があります。
(または、既存のAzureサーバーのパスワードを確認し、新しいパスワードが同じであることを確認してください。)
Visual Studio --->ソリューション---> Web-Appプロジェクト--->(右クリック)公開----->プロファイル----> Microsoft Azure App Service ---- New [ここからスタート]