我有两个负载均衡的SQL服务器 - AlwaysOn。这些服务器中只有第二个应该用于水晶报告。我想使用连接字符串中的readOnly
标志访问第二个SQL服务器:ApplicationIntent=ReadOnly
在我的C#课程中,我正在根据ConnectionInfo()
var myConnectionInfo = new ConnectionInfo();
Tables myTables = reportDocument.Database.Tables;
for (int i = 0; i < myTables.Count; i++)
{
var myTable = myTables[i];
var myTableLogonInfo = myTable.LogOnInfo;
myConnectionInfo.ServerName = 'serverName';
myConnectionInfo.DatabaseName = 'databaseName';
myConnectionInfo.UserID = 'userId';
myConnectionInfo.Password = 'password';
myTableLogonInfo.ConnectionInfo = myConnectionInfo;
myTable.ApplyLogOnInfo(myTableLogonInfo);
}
我找不到设置ApplicationIntent=ReadOnly
的方法。这应该是设置myConnectionInfo.Attributes
吗?不幸的是,我还没有找到答案,但尚未得到答案:
答案 0 :(得分:1)
很遗憾,我没有找到在我发布的代码段中使用标记ApplicationIntent=ReadOnly
的方法。
我最终做了什么:
我没有使用负载均衡器IP地址(或主机名),而是直接使用报告服务器的IP地址。
我无法找到任何书面文件,无论是否可以使用ApplicationIntent=ReadOnly
。
答案 1 :(得分:1)
您可以使用System.Data.SqlClient.SqlConnectionStringBuilder而不是使用ConnectionInfo,它具有可设置的ApplicationIntent属性。