在VS2010中构建了一个小型VB.Net应用程序。
SQL Server的连接字符串如下:
<connectionStrings>
<add name="IWSR_DataDownloadWizard.My.MySettings.sqlConnection"
connectionString="Provider=SQLOLEDB.1;Data Source=SQLServer;Integrated Security=SSPI;Initial Catalog=IWSROL"
providerName="System.Data.OleDb" />
</connectionStrings>
在VS2010环境和我的机器上,连接工作正常,但是当我部署到客户端时,我收到错误消息:
[DBNETLIB] [ConnectionOpen(Connect())。] SQL Server不存在或访问被拒绝。
我试图在网上搜索解决方案,看过一些人说没有使用服务器名称而是使用IP地址(这不起作用),有些人说删除“Provider = SQLOLEDB” .1“,再次这不起作用。
有人可以提出解决方案吗?
更多信息:
开发系统是使用VS2010的Windows7 部署系统是Windows XP,Windows 2000和Windows 7的组合 SQL Server是SQL2000(很快将成为SQL2005)。
TIA
答案 0 :(得分:2)
好的,我们走了:
这不是身份验证错误 - 它是“未达到服务器”错误。在SQL级别上拒绝访问具有不同的错误。这是“无法建立服务器连接”。
在上面:
不好的想法。为什么你在这里使用OleDb接口而不是SQL Server本机客户端?你真的喜欢浪费资源,还是有真正的理由?
connectionString="Provider=SQLOLEDB.1;Data
源= SQLServer的;集成 安全性= SSPI;初始目录= IWSROL“ providerName =“System.Data.OleDb”/&gt;
答案 1 :(得分:1)
可能是网络库不匹配。您的客户端可能尝试使用TCP / IP访问SQL Server,但服务器可能只启用了命名管道(反之亦然)。服务器上有一个“服务器网络实用程序”,在客户端上可以配置netwok库 - 确保它们都以相同的方式设置,并且优先级顺序将TCP / IP作为最高优先级。 / p>
答案 2 :(得分:0)
SQL服务器是否存在(您可以从客户端ping它吗?)
他们是否有权访问(您使用的是Windows身份验证,因此它将是他们的域帐户)?
您确定要使用Windows身份验证而不是SQL身份验证吗?
答案 3 :(得分:0)
答案 4 :(得分:0)
感谢所有回复并提供支持/帮助的人。非常感谢。
解决了问题,端口不同,因此连接字符串现在显示为:
<connectionStrings>
<add name="IWSR_DataDownloadWizard.My.MySettings.sqlConnection"
connectionString="Provider=SQLOLEDB.1;Data Source=SQLServer,2433;Integrated Security=SSPI;Initial Catalog=IWSROL"
providerName="System.Data.OleDb" />
(不是DataSource名称后面的新端口号)。
为什么它在我的机器上运行而不是部署,虽然我真的不知道。