因此,我无法在我的项目中引用任何特定的 SSRS Web 服务,因为我希望用户能够将其指向自己的报表服务器。 我有什么办法可以做到这一点吗?
具体来说,我需要能够(至少)获取可用的报告、查看报告和安排报告。 我还没有通过 c# 接触过报表计划,但通过参考我的本地报表服务,报表选择/查看非常简单。 有没有办法为任何给定的报告服务动态加载 Web 服务 - 假设我知道 url 或服务器和实例名称?
var rs = new ReportingService2005
{
Credentials = System.Net.CredentialCache.DefaultCredentials
};
// get catalog items from the report server database
CatalogItem[] items = rs.ListChildren("/", true);
// add each report to the combobox
foreach (CatalogItem ci in items)
{
if (ci.Type == ItemTypeEnum.Report)
comboBox1.Items.Add(ci.Path);
}
这就是我目前正在做的,以提取可用的报告。 但是,如上文所述,它直接引用我自己的报表服务器。 ReportingService2005(我命名为对我的.asmx Web服务的引用)是我希望能够动态加载的内容。
绝对有可能。报告服务具有您可以分配.Url
属性。所以你可以做到:
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx";
参考:"设置 Web 服务的 url 属性"