提问者:小点点

SQLServerException同时尝试使用Fitnesse和DbFit和SQL服务器


我是新的(Java)FitNesse和SQL服务器,我想有一个基本的SQL测试与DbFit工作,

我有以下根:

!path c:\fitnesse\lib\dbfit.jar
!path c:\fitnesse\lib\fitlibrary.jar
!path c:\fitnesse\lib\sqljdbc4.jar
|Import|
|dbfit.SqlServerTest|

我在HelloWorldTest中有以下内容,

!contents -R2 -g -p -f -h

!|dbfit.SqlServerTest|

|Connect|LOCALSQLEXPRESS|sa|Password|somePassword:|

|eg.Division|
|numerator|denominator|quotient?|
|10       |2          |5        |
|12.6     |3          |4.2      |
|100      |4          |33       |  

我尝试过的:

  • 我已经仔细检查了我的SQLExpress用户名和密码,SqlServer实例localhost。我怀疑这是防火墙问题。(诚然,我对防火墙的理解相当薄弱。)
  • 查看Sql服务器配置管理器(SSCM),
    • 我看到SQL服务器(SQLEXPRESS)作为进程运行,ID2316,
    • 使用PowerShell命令“nestat-a-no|选择字符串2316”,我看到端口55618上的进程。

    当我运行测试时,我收到以下错误:

    com.microsoft. sqlserver.jdbc.SQLServerException:TCP/IP连接到主机LOCALSQLEXPRESS,端口1433失败。错误:"null.验证连接属性.确保SQLServer实例正在主机上运行并在端口接受TCP/IP连接.确保TCP连接未被防火墙阻止."。

    (请注意端口号1433,尽管我的别名指向端口55618。)

    这是我在StackOverflow的第一篇文章,请原谅我的愚蠢。有人能解释一下吗?


共1个答案

匿名用户

我希望lingo_journey现在已经解决了这个问题。对于其他可能有同样问题的人,我最初也无法使命名实例与多参数Connect一起工作。

为了解决这个问题,我切换到连接字符串作为Connect的参数:

1)确保SQL服务器浏览器服务正在运行(如上面的评论所述)

2)更改Connect参数如下:

!| Connect | jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=DB_NAME;integratedSecurity=true |

以下使用SQL服务器身份验证(可能更适用于lingo_journey:

!| Connect | jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=DB_NAME;user=user1;password=Welcome!|

请注意,在我在网络上看到的一些示例中,sqlserver:已从连接字符串中省略,这对我不起作用。