Escape;(分号)在appsettings.json文件中的aspnet核心连接字符串中

时间:2017-04-25 04:26:07

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

我创建了一个Web应用程序。我试图通过实体框架连接到MS Sql数据库。

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

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

  

DefaultConnection":"服务器=服务器名称;数据库=我的数据库;用户   ID =为myuser;密码= HjkT; TK-K @ = 55 \?; MultipleActiveResultSets = TRUE;

当我试图访问实体框架时收到此错误

  

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

     

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

我尝试将此密码用双引号/单引号/" 。但仍然面临这个错误。

1 个答案:

答案 0 :(得分:2)

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

  

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

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

  

服务器=服务器名称;数据库=我的数据库;用户ID = myuser;密码= “HjkT; TK-K @ = 55 \”; MultipleActiveResultSets = TRUE;

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

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