尝试在尝试指定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服务器。
答案 0 :(得分:3)
如果您使用的是SQL Server Express和命名实例,那么该端口将不是1433,而是一个动态分配的端口。
请参阅此文章,向下滚动到SQL Server使用的端口'并在默认配置中查找SQL Server命名实例'。
http://msdn.microsoft.com/en-us/library/cc646023.aspx
我不知道您是否可以为SQL Server Express实例分配特定端口。如果是这样,那就是您需要做的,并在连接字符串中指定该端口。如果无法将特定端口分配给SQL Server Express命名实例,那么您必须坚持指定实例名称,而不是端口。