以下是我的连接字符串:
connectionString="metadata=res://*/EDMX.Test.csdl|res://*/EDMX.Test.ssdl|res://*/EDMX.Test.msl;provider=System.Data.SqlClient;provider connection string="Data Source=home_computer;Initial Catalog=db_Test;Persist Security Info=True;User ID=testUser;Password=$1234;MultipleActiveResultSets=True""
以下是程序停滞的代码:
EDMX.TestingEntity context = new EDMX.TestingEntity();
var query = from t in context.User
where t.UserName == _userName
select t;
运行以上代码后,我检查了变量query并发现了一个异常。
引起这个异常的原因是底层提供程序在打开时失败。
我已经检查过:
1. 服务器和计算机之间的连接是正常的 2. 我可以使用用户名testuser和密码$1234登录到数据库 3. 我已经检查了数据库(SQL Server)中的安全设置,已授予testUser权限
为什么会出现这种异常?我正在使用.net 4.5。
补充:
我尝试了一下,查看内部异常,发现是:
在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问。请验证实例名称是否正确,并且SQL Server已配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开到SQL Server的连接)
我知道这可能是一个网络问题,但我已经关闭了服务器和计算机的防火墙,再次尝试但仍然没有成功。
刚才我将连接字符串复制到一个程序中测试该连接,结果功能正常。
我刚刚回滚了所有更改并重新测试,结果成功了。