【问题标题】:Escape ;(semicolon) in aspnet core connection string in appsettings.json file转义 ;(分号)在 appsettings.json 文件中的 aspnet 核心连接字符串中
【发布时间】:2017-09-21 22:20:10
【问题描述】:

我创建了一个网络应用程序。我正在尝试通过实体框架连接到 MS Sql 数据库。

我在 appsettings.json 文件中的以下连接字符串中有问题。

在连接字符串中密码包含分号如下。

DefaultConnection": "服务器=服务器名称;数据库=我的数据库;用户 身份证=我的用户;密码=HjkT;tk-k@=?55\; MultipleActiveResultSets=true;

当我尝试访问实体框架时遇到此错误

处理请求时发生未处理的异常。

ArgumentException:不支持关键字:'tk-k@'

我尝试将此密码放在双引号/单引号/" 中。但仍然遇到此错误。

【问题讨论】:

  • 您可以将密码更改为不包含分号吗?
  • @tadman 那不在我手中,我要求我的客户更改它。但这里应该有一些解决方案.. 对吧?
  • 在分号前加一个反斜杠“\”怎么样?
  • @HasanIbrahim 我尝试了同样的问题..
  • 您需要以某种方式将其设置为文字。哈桑有一个可行的想法。如果您能找到此 DSN 格式的参考资料,也许这就是关键。我特意设置了适用于这些描述符的密码。

标签: asp.net-core entity-framework-core


【解决方案1】:

这不是appsettings.json 问题,是连接字符串问题。

连接字符串的基本格式包括一系列 用分号分隔的关键字/值对。等号 (=) 连接每个关键字及其值。包含包含 分号、单引号字符或双引号字符, 值必须用双引号括起来
from here

所以你的连接字符串应该是这样的:

服务器=服务器名称;数据库=我的数据库;用户 ID=我的用户;密码="HjkT;tk-k@=?55\"; MultipleActiveResultSets=true;

只要引号和反斜杠是 json 的特殊符号 - 你应该用反斜杠转义它们。这是你的文件:

{
  "DefaultConnection": "Server=server name; Database=my db; User Id=myuser; Password=\"HjkT;tk-k@=?55\\\"; MultipleActiveResultSets=true;"
}

【讨论】:

  • 字符串以双引号开头时可以使用单引号。
猜你喜欢
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多