SQL 服务器连接字符串问题
SQL Server Connection String issues
我在 AWS Windows 2016 服务器上。它预装了 SQL Server 2016。
我有一个 .NET 4.8 网站,我正在尝试将网站(在网络服务器上)连接到 SQL 服务器实例(也安装在网络服务器上)。
我有一个简单的 C# 函数来告诉我我的连接字符串是否有效(我尝试过的所有方法 returns 都是错误的)。
public static bool IsServerConnected(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
}
private static string connect = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
public static string connDb
{
get { return connect; }
set { connect = value; }
}
// Usage:
bool TestConnection = IsServerConnected(connDb);
这来自我的 web.config
文件(连接字符串)
[出于隐私原因,我只在字符串中包含 ****,我使用了实际的 SQL 服务器名称]:
<connectionStrings>
<add name="db"
connectionString="Data Source=EC2AMAZ-84****;Initial Catalog=testdb;Integrated Security=True;Trusted_Connection=Yes;"
providerName="System.Data.SqlClient" />
</connectionStrings>
这是来自 SQL Server Management Studio 的屏幕(我从网站所在的同一 Windows 服务器访问):
谁能帮帮我?我应该如何设置连接字符串?
编辑
根据我在下面收到的一些帮助,这是我目前所在的位置:
- 我运行创建新登录和角色的脚本
- 命令成功完成后,我退出了 SSMS,然后使用服务重新启动了 SSMS(见图 2)
- 我使用凭据登录 SSMS:'MyUser' 和 'P@ssword01'
- 我收到一条错误消息,指出登录成功但共享内存提供程序错误(SQL 服务器错误 223)
以下是一些有助于解决问题的提示:
确保您的服务器名称是正确的,例如,名称没有拼写错误。
请确保你的实例名称是正确的,实际上有这样的
目标机器上的一个实例。 (尝试使用连接字符串
像 . 连接到本地的实例
电脑。例如:.\SQLEXPRESS)
当您尝试连接到另一台服务器上的 SQL 服务器实例时,
确保服务器机器可以访问,例如 DNS 可以解析
正确,您可以 ping 服务器(并非总是如此)。
确保 SQL 浏览器服务在服务器上 运行。
如果服务器开启了防火墙,需要设置sqlbrowser.exe
and/or UDP 端口 1434 异常。
创建登录并映射到数据库用户:
USE [master]
GO
CREATE LOGIN [MyLogin] WITH PASSWORD=N'pwd',
DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
use [testdb];
create user MyUser from login MyLogin;
GO
use [testdb];
exec sp_addrolemember 'db_owner', 'MyUser';
GO
我在 AWS Windows 2016 服务器上。它预装了 SQL Server 2016。
我有一个 .NET 4.8 网站,我正在尝试将网站(在网络服务器上)连接到 SQL 服务器实例(也安装在网络服务器上)。
我有一个简单的 C# 函数来告诉我我的连接字符串是否有效(我尝试过的所有方法 returns 都是错误的)。
public static bool IsServerConnected(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
}
private static string connect = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
public static string connDb
{
get { return connect; }
set { connect = value; }
}
// Usage:
bool TestConnection = IsServerConnected(connDb);
这来自我的 web.config
文件(连接字符串)
[出于隐私原因,我只在字符串中包含 ****,我使用了实际的 SQL 服务器名称]:
<connectionStrings>
<add name="db"
connectionString="Data Source=EC2AMAZ-84****;Initial Catalog=testdb;Integrated Security=True;Trusted_Connection=Yes;"
providerName="System.Data.SqlClient" />
</connectionStrings>
这是来自 SQL Server Management Studio 的屏幕(我从网站所在的同一 Windows 服务器访问):
谁能帮帮我?我应该如何设置连接字符串?
编辑
根据我在下面收到的一些帮助,这是我目前所在的位置:
- 我运行创建新登录和角色的脚本
- 命令成功完成后,我退出了 SSMS,然后使用服务重新启动了 SSMS(见图 2)
- 我使用凭据登录 SSMS:'MyUser' 和 'P@ssword01'
- 我收到一条错误消息,指出登录成功但共享内存提供程序错误(SQL 服务器错误 223)
以下是一些有助于解决问题的提示:
确保您的服务器名称是正确的,例如,名称没有拼写错误。
请确保你的实例名称是正确的,实际上有这样的 目标机器上的一个实例。 (尝试使用连接字符串 像 .
连接到本地的实例 电脑。例如:.\SQLEXPRESS) 当您尝试连接到另一台服务器上的 SQL 服务器实例时, 确保服务器机器可以访问,例如 DNS 可以解析 正确,您可以 ping 服务器(并非总是如此)。
确保 SQL 浏览器服务在服务器上 运行。
如果服务器开启了防火墙,需要设置sqlbrowser.exe and/or UDP 端口 1434 异常。
创建登录并映射到数据库用户:
USE [master]
GO
CREATE LOGIN [MyLogin] WITH PASSWORD=N'pwd',
DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
use [testdb];
create user MyUser from login MyLogin;
GO
use [testdb];
exec sp_addrolemember 'db_owner', 'MyUser';
GO