【问题标题】:SSRS Render()-- Can't get the simplest of examples to compileSSRS Render() - 无法编译最简单的示例
【发布时间】:2017-12-27 23:32:44
【问题描述】:

我正在尝试构建一个 Windows 桌面应用程序来呈现位于 SQL Server Reporting Services 中的报表。我一直在努力解决问题,因为我找到的所有示例都无法编译。以下是我遵循的步骤:

  1. 打开 Visual Studio 并使用 C# (WPF) 创建了一个 Windows 桌面应用

  2. 粘贴在来自here (Microsoft) 的示例代码中。

  3. 创建了对http://localhost/reportserver/ReportExecution2005.asmx 的服务引用,SSRS Web 服务应该提供所需的 Render() 方法。我称之为 ReportExecution2005。

  4. 添加了对 System.Web.Services 的引用。

  5. 为 Web 服务引用和 System.Web.Services 添加了 Using 语句。

所以,我添加了这两个引用和如下所示的 Using 语句。

我的问题是 ReportExecutionService 不存在。我在任何地方都找不到它。你能告诉我我做错了什么吗?非常感谢您的帮助!

【问题讨论】:

  • 您是否在同一台机器上本地运行 SSRS?您是否通过浏览器导航到 asmx 来测试是否从 Web 服务获得响应?
  • 嗨,@AlanSchofield。非常感谢你的回复。我没有尝试过,但现在才尝试过。我在本地机器和最终的生产机器上都尝试了 SSRS 报告服务。两人都给了我回应。响应 XML 似乎包含 ReportExecutionSoap 实体的定义,该实体具有称为 Render 的“方法”(这给了我一些希望)。但是,如果我尝试初始化该类型的对象,则会收到“无法创建抽象类的实例”的错误。

标签: reporting-services


【解决方案1】:

由于您访问的是旧的 ASMX 服务(经典的 asp 服务),您可以尝试使用 添加 Web 参考,您将在通过它打开的同一对话框下找到它 “添加服务引用”,然后单击“高级”并选择“添加 Web 引用”。

一旦你这样做了,你应该能够毫无问题地编译你的代码。确保删除对通过“添加服务引用”添加的服务的现有引用 以避免客户端代理代码中的任何歧义。

话虽如此,您仍然可以使用“添加服务引用”,但需要对示例代码进行一些修改。但是到目前为止,给定的解决方案应该适合您。要了解更多关于差异的信息,请查看此处:

Web Reference vs. Service Reference

【讨论】:

  • 优秀的答案,杰伊!它完美地解决了这个问题。当我第一次尝试添加引用时,添加 Web 引用的选项变暗(在 Visual Studio 2017 中)。我不记得究竟是为什么。您的方法允许我通过“后门”添加 Web 引用,现在一切都编译好了。谢谢!
  • vs2017这个“高级”到底在哪里?我确切地知道您在说什么,因为我之前在 vs2015 和 .net 标准项目中必须这样做。但是在最新更新的 vs2017 中,甚至安装了扩展以添加 WCF Web 服务引用,我从未在任何对话框中看到“高级”。
猜你喜欢
  • 2014-06-20
  • 2012-07-26
  • 2017-03-26
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
相关资源
最近更新 更多