Asp.net core 连接字符串参数不能为null

Asp.net core 连接字符串参数不能为null,asp.net-core,asp.net-core-mvc,connection-string,Asp.net Core,Asp.net Core Mvc,Connection String,我有一个在我的机器上运行的MVC核心应用程序,其中SQLEXPRESS不是命名实例。当我将其部署到远程计算机上的IIS 7.5时,它是一个命名实例,而不更改连接字符串: "Server=localhost;Database=QuickShare;Trusted_Connection=True;MultipleActiveResultSets=true" 我得到以下错误: SqlException:发生与网络相关或特定于实例的错误 在建立与SQL Server的连接时。服务器不可用 找到或无法访

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

"Server=localhost;Database=QuickShare;Trusted_Connection=True;MultipleActiveResultSets=true"
我得到以下错误:

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

然后,我更正命名实例的连接字符串:

"Server=localhost.\SQLEXPRESS;Database=QuickShare;Trusted_Connection=True;MultipleActiveResultSets=true"
我得到以下错误:

ArgumentNullException:值不能为null。参数名称: 连接字符串

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

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

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

请记住,您的配置文件是JSON,这意味着某些字符需要转义,在本例中是反斜杠。因此,从中可以看出,需要将反斜杠加倍。例如:

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

请记住,您的配置文件是JSON,这意味着某些字符需要转义,在本例中是反斜杠。因此,从中可以看出,需要将反斜杠加倍。例如:

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