我有一个表,其中包含为 FileStream 启用的字段,并且它正确保存了信息。
使用 Microsoft 指南(text)指示的代码,我可以检索 local 服务器上的文件信息。一旦我使用 SqlConnection 连接到远程服务器(使用 IP 地址),就会出现一条错误消息,指出“用户名或密码不正确”。
下面是我正在分析的代码。
SqlConnection sqlConnection = new SqlConnection("Integrated Security=true;Password=sensure;User ID=sa;Initial Catalog=DataTest;Data Source=" + "192.168.1.122" + "\\SQLEXPRESS" + ";MultipleActiveResultSets=True;encrypt=false");
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.Connection = sqlConnection;
...
sqlConnection.Open();
sqlCommand.CommandText = "SELECT RawImage.PathName()"
+ " FROM DEFECTS";
String filePath = null;
Object pathObj = sqlCommand.ExecuteScalar();
if (pathObj != DBNull.Value)
{
filePath = (string)pathObj;
}
else
{
throw new Exception("Get PathName FAILED!");
}
SqlTransaction transaction = sqlConnection.BeginTransaction("mainTransaction");
sqlCommand.Transaction = transaction;
sqlCommand.CommandText = "SELECT GET_FILESTREAM_TRANSACTION_CONTEXT()";
Object obj = sqlCommand.ExecuteScalar();
byte[] txContext = (byte[])obj;
SqlFileStream sqlFileStream = new SqlFileStream(filePath, txContext, FileAccess.ReadWrite, FileOptions.None, 0);
有人知道我该如何解决这个问题吗?
听起来您遇到了跨域信任问题。由于您的应用程序域不受 SQL Server 托管域的信任,因此它会阻止用户跨域访问资源。我能够重现这个场景并找到一个适合我的解决方案。以下是我遵循的步骤: 建立信任关系:第一步是在两个域之间建立信任关系。您可以参考此视频,了解如何实现此目的的清晰说明: 在域之间建立信任。