Sql server 无法远程连接到SQL Server
我有一个功能齐全的WPF应用程序在本地机器上运行,SQL Server 2008作为数据库。SQL Server Management studio也安装在我的计算机上。现在,我希望我的应用程序可以通过公司网络访问,以便其他用户可以使用我的应用程序。我已经创建了install shield,在另一台windows 7计算机上安装了任何应用程序,但在使用Sql server 无法远程连接到SQL Server,sql-server,wpf,sql-server-2008,deployment,connection-string,Sql Server,Wpf,Sql Server 2008,Deployment,Connection String,我有一个功能齐全的WPF应用程序在本地机器上运行,SQL Server 2008作为数据库。SQL Server Management studio也安装在我的计算机上。现在,我希望我的应用程序可以通过公司网络访问,以便其他用户可以使用我的应用程序。我已经创建了install shield,在另一台windows 7计算机上安装了任何应用程序,但在使用EntityFramework 6.0调用数据库时启动应用程序时,我会收到这些错误消息(异常/内部异常) 我已在SQL Server confi
EntityFramework 6.0
调用数据库时启动应用程序时,我会收到这些错误消息(异常/内部异常)
我已在SQL Server configuration manager中启用TCP/IP,端口设置为1433。SQL Server命名实例,这就是configuration manager的外观
计算机(安装/承载SQL server的计算机)上的防火墙已关闭。这是我的连接字符串
<connectionStrings>
<add name="TestPacksContext" connectionString="metadata=res://*/TestPacksModel.csdl|res://*/TestPacksModel.ssdl|res://*/TestPacksModel.msl;provider=System.Data.SqlClient;provider connection string="data source=IMCCIT101\SQLEXPRESS;initial catalog=TPM;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
因此,我相信我已经启用了所有应该启用的设置,但仍然无法连接到SQL server
p.S:我没有在客户端计算机上安装Sql server或Sql server Management studio或任何特殊设备更新: 聊天后发现,问题完全不同了。 domainmodel位于单独的程序集中,连接字符串配置仅位于该类库的app.config中。但是
AppDomain
只能有一个配置文件,请参阅
因此,要修复此问题,请添加:
<connectionStrings>
<add name="TestPacksContext"
connectionString=
"metadata=res://*/TestPacksModel.csdl|res://*/TestPacksModel.ssdl|res://*/TestPacksModel.msl;
provider=System.Data.SqlClient;provider connection string="
data source=IMCCIT101\SQLEXPRESS,1433;
initial catalog=TPM;integrated security=True;
MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
致:
您还需要确保端口1433已被windows防火墙打开。您可以使用一个简单的工具,如Telnet
来测试您是否可以连接到IMCCIT101上的端口1433
还要确保客户端有可用的DNS,以便可以找到IMCCIT101的IP地址
integrated security=True;
但也要指定sa用户的凭据(请参阅下文了解不应这样做的其他原因)
我假设您将数据库托管在笔记本电脑上,因此无法或至少不容易使用windows集成安全性。因此,将“综合安全”改为:
integrated security=False;
安全通知:
您向其他计算机上的用户提供SQL server的sa
凭据。您是否知道具有此凭据的任何人都可以对您的SQL server执行任何操作,包括删除数据库等
Windows集成安全性是连接到数据库的首选方式。如果这不是一个选项,请为您的用户创建sql用户
您仍然无法完全访问它们,因为它们的密码将以明文形式存储在它们的计算机上
换句话说,如果可以,请将SQL server数据库托管在Active Directory环境中的中央服务器上,以便使用集成安全性。重新启动实例后是否进行了检查?请启动
SQL server代理(SQLEXPRESS)
我们可以在您的帖子中看到已停止的服务image@tinkaSQL server代理在SQLEXPRESS中不可用!而且也不需要!我设置用户ID和Passowrd纯粹是为了测试。我不再使用它了(我也编辑了这个问题)。我已经在连接字符串中添加了端口1433,在客户端机器上使用telnet命令查看端口是否打开,结果是打开的。但我仍然无法连接。同样的问题:顺便问一句,我如何确保客户端机器有工作DNS并能找到IMCCIT101的IP地址?我没有安装Sql server或客户端机器的任何Sql软件,这可能是个问题吗?不,不需要在客户端计算机上安装sql工具或任何东西。如果您使用集成安全性,您是否在AD环境中运行,并且AD用户是否对您的sql server具有权限?如何检查此AD内容?
data source=IMCCIT101\SQLEXPRESS;
data source=IMCCIT101\SQLEXPRESS,1433;
integrated security=True;
integrated security=False;