我有一个使用 SQL Azure db 的 Azure ASP.net MVC Web 应用程序。它工作了几个月(某天由于某种原因 Azure 更改了服务器的名称,我不得不再次设置,但一切正常),但现在它不起作用。
首先我想,他们可能再次更改了服务器名称,但我打开了我的 SSMS 并在重置密码后再次连接。所以我在我的应用程序连接字符串中更改了密码并测试一切正常,是的,调试和测试工作正常。所以我发布了,但是一旦发布应用程序就会抛出错误
Login failed for user 'my_username'
Run Code Online (Sandbox Code Playgroud)
我在应用程序中查看了这篇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;
Run Code Online (Sandbox Code Playgroud)
对此
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;
Run Code Online (Sandbox Code Playgroud)
正如 Azure 门户中显示的那样,在数据库连接字符串中。我只删除了属性
Data Source=SERVER_NAME.database.windows.net;
Run Code Online (Sandbox Code Playgroud)
我还检查了发布过程不会更改连接字符串。
但它仍然适用于调试和 SSMS,但不适用于生产。