0

IIS 7.x で実行されている ASP.NET アプリケーション内で .rss SSRS スクリプト ファイルを実行する必要があります。どうやってやるの?

Web アプリケーションを実行している IIS AppPool を構成して特権を昇格させ、.rss スクリプトを渡す rs.exe コンソール アプリケーションを起動できるようにする必要がありますか? IIS?

それとも別の方法がありますか?Visual Studio/.NET は、rs.exe コンソール アプリケーションを必要とせずに .rss スクリプト ファイルをブートストラップするメカニズムを提供しますか? IIS で実行されている Web アプリケーションで rs.exe コンソール アプリケーションを使用できるようにする唯一のオプションはありますか?

4

1 に答える 1

0

それで、私はそれを理解しました。ReportServices2010 プロキシを使用して SSRS Reports Server でレポートの履歴スナップショットを作成する方法を知りたい場合は、これを実現するための 1 つの例と 1 つの方法を示します (SOAP API を紹介してくれた洞察を共有してくれた kyzen に感謝します)。 ):

Dim basicHttpBinding As New BasicHttpBinding()
basicHttpBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly
basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm
basicHttpBinding.SendTimeout = New TimeSpan(0, 10, 0)
Dim endPoint As New EndpointAddress("http://server/reportserver/ReportService2010.asmx")
Dim instance As New ReportingService2010SoapClient(basicHttpBinding, endPoint)
Dim itemPath As String = "/Path/to/report"
Dim warnings() As Warning
Dim historyId As String = Nothing
Dim values As ParameterValue() = Nothing
Dim credentials As DataSourceCredentials() = Nothing
Dim t As New TrustedUserHeader()
instance.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation
instance.ClientCredentials.Windows.ClientCredential = New Net.NetworkCredential("userid", "password", "domain")
instance.Open()

oServerInfoHeader = instance.CreateItemHistorySnapshot(t, itemPath, historyId, warnings)

そしてC#で:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
basicHttpBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly
basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm
basicHttpBinding.SendTimeout = New TimeSpan(0, 10, 0)

EndpointAddress endPoint = new EndpointAddress("http://server/reportserver/ReportService2010.asmx");
ReportingService2010SoapClient instance = new ReportingService2010SoapClient(basicHttpBinding, endPoint);
string itemPath = "/Path/to/report"
Warning warnings[];
string historyId;
ParameterValue values[];
DataSourceCredentials credentials[];
TrustedUserHeader t = new TrustedUserHeader();

instance.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
instance.ClientCredentials.Windows.ClientCredential = New Net.NetworkCredential("userid", "password", "domain");
instance.Open();

oServerInfoHeader = instance.CreateItemHistorySnapshot(t, itemPath, historyId, warnings);
于 2014-03-11T20:42:19.677 に答える