指定默认端口时“用户登录失败”

尝试在尝试指定SQL Server端口时尝试调试客户的连接问题。

在本地重现问题,我检查了我的服务器在默认的1433端口下运行。 使用以下命令指定该端口:

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); builder.DataSource = "servername,1433"; builder.InitialCatalog = databaseName; builder.IntegratedSecurity = false; builder.UserID = userName; builder.Password = UserPsw; 

这失败了“用户登录失败”。 如果我删除端口号,它连接正常。 为什么会这样?

顺便说一句,Windows Integrated Security也是如此。

还有一条信息:我也在同一个盒子上运行SQL Server 2005 express SQL服务器。

如果您使用的是SQL Server Express和命名实例,则端口将不是1433,而是动态分配的端口。

请参阅此文章,向下滚动到“SQL Server使用的端口”部分,并查找“默认配置中的SQL Server命名实例”。

http://msdn.microsoft.com/en-us/library/cc646023.aspx

我不知道您是否可以为SQL Server Express实例分配特定端口。 如果是这样,那就是您需要做的,并在连接字符串中指定该端口。 如果无法将特定端口分配给SQL Server Express命名实例,则必须坚持指定实例名称,而不使用端口。