连接字符串参数不能为空

时间:2018-04-14 16:16:18

标签: asp.net-core asp.net-core-mvc connection-string

我有一个可在我的机器上运行的MVC Core应用程序,其中SQLEXPRESS不是命名实例。当我将它部署到远程计算机上的IIS 7.5时,它是一个命名实例,而不更改连接字符串:

"Server=localhost;Database=QuickShare;Trusted_Connection=True;MultipleActiveResultSets=true"

我收到以下错误:

  

SqlException:发生了与网络相关或特定于实例的错误   同时建立与SQL Server的连接。服务器不是   发现或无法访问。验证实例名称是否正确   并且SQL Server配置为允许远程连接。   (提供者:命名管道提供者,错误:40 - 无法打开   连接到SQL Server)

然后我更正了nameD实例的连接字符串:

"Server=localhost.\SQLEXPRESS;Database=QuickShare;Trusted_Connection=True;MultipleActiveResultSets=true"

我收到以下错误:

  

ArgumentNullException:值不能为null。参数名称:   的connectionString

在开发人员错误页面的堆栈跟踪中,突出显示的是Startup.cs的以下行:

options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

如何仅更改连接字符串从预期的连接异常到空参数异常?

1 个答案:

答案 0 :(得分:3)

记住你的配置文件是JSON,这意味着某些字符需要被转义,在这种情况下它是反斜杠。所以从this answer你可以看到你需要加倍反斜杠。例如:

"Server=localhost\\SQLEXPRESS;Database=QuickShare;......"