2017-07-26 84 views
5

Yük dengeli olan iki SQL sunucum var - AlwaysOn. Kristal sunucu raporları için bu sunuculardan sadece ikinci tanesi kullanılmalıdır. Ben bağlantı dizesinde readOnly bayrağını kullanarak ikinci bir SQL sunucusuna erişmek istiyorum: Benim C# sınıfındaAlwaysOn ortamında Crystal Report için Salt Okunur Erişimi Ayarı

ApplicationIntent=ReadOnly Ben 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); 
} 

dayalı kristal raporları çalıştırıyorum Bir yolunu bulamadım ApplicationIntent=ReadOnly'u ayarlamak için. Bunun myConnectionInfo.Attributes ayarının yapılması gerekiyor mu? Ne yazık ki bu henüz ama cevapsız sorular konusunda bir cevap bulamadı:

+0

Veritabanı sunucusunda 'userID' izinlerini ayarlamak için ne yapılmalı? – dd4711

cevap

1

Maalesef benim yayınlanmıştır kod parçacığı bayrağı ApplicationIntent=ReadOnly kullanmanın bir yolunu bulamadık.

Ne yaptım:
Yük dengeleyici IP adresini (veya ana bilgisayar adını) kullanmak yerine, doğrudan raporlama sunucusunun IP adresini kullanıyorum. ApplicationIntent=ReadOnly'u kullanıp kullanamayacağına dair yazılı bir belge bulamadım.

+1

Bu benim tarafımda yapıyorum. Bağlantı dizesinde readonly ServerName akıllıca değiştiriliyor. –

0

ConnectionInfo kullanmak yerine, ayarlanabilir bir ApplicationIntent özelliğine sahip System.Data.SqlClient.SqlConnectionStringBuilder kullanabilirsiniz.