“SQL Server不存在或访问被拒绝。”在VB.Net部署

时间:2010-04-28 08:08:52

标签: sql-server vb.net visual-studio-2010

在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

5 个答案:

答案 0 :(得分:2)

好的,我们走了:

  • 确保在SQL Server上启用了网络 - 安装后默认情况下未启用。
  • 不要忘记您的防火墙;)您可能需要设置防火墙例外 - 这也不是由SQL Server自动安装完成的。
  • 当然你没有玩IpSec? ;)只是问 - 可以使网络连接消失。

这不是身份验证错误 - 它是“未达到服务器”错误。在SQL级别上拒绝访问具有不同的错误。这是“无法建立服务器连接”。

在上面:

  

    connectionString="Provider=SQLOLEDB.1;Data
     

源= SQLServer的;集成   安全性= SSPI;初始目录= IWSROL“           providerName =“System.Data.OleDb”/&gt;

不好的想法。为什么你在这里使用OleDb接口而不是SQL Server本机客户端?你真的喜欢浪费资源,还是有真正的理由?

答案 1 :(得分:1)

可能是网络库不匹配。您的客户端可能尝试使用TCP / IP访问SQL Server,但服务器可能只启用了命名管道(反之亦然)。服务器上有一个“服务器网络实用程序”,在客户端上可以配置netwok库 - 确保它们都以相同的方式设置,并且优先级顺序将TCP / IP作为最高优先级。 / p>

答案 2 :(得分:0)

  1. SQL服务器是否存在(您可以从客户端ping它吗?)

  2. 他们是否有权访问(您使用的是Windows身份验证,因此它将是他们的域帐户)?

  3. 您确定要使用Windows身份验证而不是SQL身份验证吗?

答案 3 :(得分:0)

  • 您是否启用了TCP / IP和/或 命名管道协议?
  • 您的客户可以访问“SQLSERVER”主机吗? 名字(即他们可以ping它)?
  • 他们是否具有SQL Server的访问权限?

答案 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名称后面的新端口号)。

为什么它在我的机器上运行而不是部署,虽然我真的不知道。