第 3 课:访问 Web 服务
将报表服务器 Web 服务的引用添加到项目中后,下一步是创建 Web 服务代理类的实例。 然后,您可以通过调用代理类中的方法来访问 Web 服务的方法。 当应用程序调用这些方法时,Visual Studio 生成的代理类代码将处理应用程序和 Web 服务之间的通信。
首先,您将创建一个 Web 服务代理类的实例 ReportingService2010。 接着,您将使用代理类调用 Web 服务的 GetProperties 方法。 您将使用该调用来检索一个示例报表 Company Sales 的名称和说明。
注意
使用高级服务访问在 SQL Server Express 上运行的 Web 服务时,必须将“$SQLExpress”追加到“ReportServer”路径。 例如:
http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"
访问 Web 服务
必须先将命名空间添加到 Visual Basic) 中的 Module1.vb (Program.cs 文件,方法是将 (visual
Imports
Basic) 指令添加到using
代码文件中。 如果您使用该指令,则不必完全限定命名空间中的类型。为此,请在代码文件的开头添加以下代码:
Imports System Imports GetPropertiesSample.ReportService2010
using System; using GetPropertiesSample.ReportService2010;
在代码文件中输入了命名空间指令后,请使用控制台应用程序的 Main 方法输入以下代码。 请确保在设置 Web 服务实例的 Url 属性时更改服务器的名称:
Sub Main() Dim rs As New ReportingService2010 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx" Dim name As New [Property] name.Name = "Name" Dim description As New [Property] description.Name = "Description" Dim properties(1) As [Property] properties(0) = name properties(1) = description Try Dim returnProperties As [Property]() = rs.GetProperties( _ "/AdventureWorks 2012 Sample Reports/Company Sales 2012", properties) Dim p As [Property] For Each p In returnProperties Console.WriteLine((p.Name + ": " + p.Value)) Next p Catch e As Exception Console.WriteLine(e.Message) End Try End Sub
static void Main(string[] args) { ReportingService2010 rs = new ReportingService2010(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx"; Property name = new Property(); name.Name = "Name"; Property description = new Property(); description.Name = "Description"; Property[] properties = new Property[2]; properties[0] = name; properties[1] = description; try { Property[] returnProperties = rs.GetProperties( "/AdventureWorks 2012 Sample Reports/Company Sales 2012",properties); foreach (Property p in returnProperties) { Console.WriteLine(p.Name + ": " + p.Value); } } catch (Exception e) { Console.WriteLine(e.Message); } }
保存解决方案。
演练示例代码使用 Web 服务的 GetProperties 方法来检索示例报表 Company Sales 2012 的属性。 方法 GetProperties 采用两个参数:要检索其属性信息的报表的名称,以及包含要检索其值的属性名称的 Property[] 对象的数组。 方法还返回 Property[] 对象的数组,该数组包含 properties 参数中指定的属性的名称和值。
注意
如果为 properties 参数提供空 的 Property[] 数组,则返回所有可用属性。
在前面的示例中,代码使用 GetProperties 方法返回示例报表 Company Sales 2012 的名称和说明。 然后,代码使用 foreach
循环将属性和值写入控制台。
有关创建和使用报表服务器 Web 服务的代理类的详细信息,请参阅 Creating the Web Service Proxy。
另请参阅
第 4 课: (VB-VC#) 运行应用程序
使用 Visual Basic 或 Visual C# 访问报表服务器 Web 服务(SSRS 教程)