带有特殊字符的 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 连接字符串的主要内容,如果未能解决你的问题,请参考以下文章
连接字符串出错,如何将 Prisma 连接到 Azure SQL 数据库
Azure 函数队列触发器。连接字符串中可能的错误绑定配置?