我们的软件使用SqlConnection
对象从SQL Server获取数据。它适用于许多站点,但对于一个特定用户 - 它无法连接到服务器。我得到一个例外:
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。
在此PC上,可执行文件位于共享驱动器上。如果我们将可执行文件复制到本地驱动器(桌面)并从那里运行它,则连接成功。
以下是我用来连接SQL Server的内容:
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder.DataSource = SQLServerName;
builder.InitialCatalog = SQLDBName;
builder.WorkstationID = SQLServerName;
builder.PacketSize = 4096;
builder.IntegratedSecurity = true;
builder.PersistSecurityInfo = true;
builder.ApplicationName = "App";
builder.MultipleActiveResultSets = true;
using (SqlConnection myDbConn = new SqlConnection())
{
myDbConn.ConnectionString = builder.ConnectionString;
try
{
myDbConn.Open();
if (myDbConn.State != System.Data.ConnectionState.Open)
{
myDbConn.Close();
return false;
}
myDbConn.Close();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
myDbConn.Close();
return false;
}
}
return true;
我们仅针对特定PC(运行Windows 7)上的特定用户存在此问题。我无法理解为什么将程序从网络驱动器移动到本地驱动器会改变其行为。我尝试添加信任程序集完全控制共享驱动器,但没有结果。