带有特殊字符的 Azure 连接字符串

Posted

技术标签:

【中文标题】带有特殊字符的 Azure 连接字符串【英文标题】:Azure connection string with special character 【发布时间】:2020-06-04 23:05:42 【问题描述】:

我遇到了 Azure 连接字符串的问题,我一直遇到错误:“用户 'myuser' 登录失败。”将连接字符串添加到应用服务的配置并尝试调用 REST API 后

我尝试使用相同的凭据通过 SSMS 登录,它正在工作,如果我在 web.config 中使用相同的连接字符串,它也能正常工作。

我的理论可能是因为我在密码中有“&”号,并且它没有转义.. 我还尝试连接到同一资源组中的不同数据库实例,而 pwd 没有“&”和可以连接

有没有人见过这个问题以及如何解决它?

Azure 连接字符串不起作用:

metadata=res:///Model.EFData.csdl|res:///Model.EFData.ssdl|res://*/Model.EFData.msl;provider=System。 Data.SqlClient;provider connection string="data source=tcp:xxx.database.windows.net,1433;initial catalog=xxx;user id=myuser;password=Mypassword&123;Persist Security Info=True ;TrustServerCertificate=True;multipleactiveresultsets=True;应用程序名称=EntityFramework"

部署到 azure 时的 Web.config connectionString(注意密码用 amp; 转义)

metadata=res://*/;provider=System.Data.SqlClient;provider connection string="data source=tcp:xxx.database.windows.net,1433;initial catalog=xxx;user id=myuser; password=Mypassword&123;Persist Security Info=True;TrustServerCertificate=True;multipleactiveresultsets=True;application name=EntityFramework"

【问题讨论】:

html 实体 & 替换 & 符号。 web.config 被解析为 XML,因此在传递给 Azure SQL 时应该将其转换为 &。 -- w3schools.com/html/html_entities.asp 【参考方案1】:

所以我发现我尝试使用用户名和密码创建一个新的 EDMX,并将连接字符串复制到 Azure 并且它正在工作。当我比较两个连接字符串时,凭据是相同的(到人眼)但我猜生成的那一个有一些不同的

【讨论】:

以上是关于带有特殊字符的 Azure 连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

在运行 azure app 服务时更改连接字符串

连接字符串出错,如何将 Prisma 连接到 Azure SQL 数据库

Azure 函数队列触发器。连接字符串中可能的错误绑定配置?

在 Azure Key Vault 中存储 SQL 数据库连接字符串

Azure 函数 - 到本地数据库的连接字符串

Azure 连接字符串最佳做法