在AlwaysOn环境中为Crystal Report设置只读访问权限

时间:2017-07-26 17:42:15

标签: c# crystal-reports

我有两个负载均衡的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吗?不幸的是,我还没有找到答案,但尚未得到答案:

2 个答案:

答案 0 :(得分:1)

很遗憾,我没有找到在我发布的代码段中使用标记ApplicationIntent=ReadOnly的方法。

我最终做了什么:
我没有使用负载均衡器IP地址(或主机名),而是直接使用报告服务器的IP地址。 我无法找到任何书面文件,无论是否可以使用ApplicationIntent=ReadOnly

答案 1 :(得分:1)

您可以使用System.Data.SqlClient.SqlConnectionStringBuilder而不是使用ConnectionInfo,它具有可设置的ApplicationIntent属性。