无法找到ReportingService2010

我有:

private readonly ReportingService2010 _rs = new ReportingService2010();

错误:

 The type or namespace name 'ReportingService2010' could not be found (are you missing a using directive or an assembly reference?) 

我设置了对SSRS服务的引用。 该引用不允许我按预期访问ReportingService2010。 最接近的是:

MySsrsServiceNamespace.ReportingService2010SoapClient

我应该如何使用ReportingService2010课程? MSDN模糊地列出了这个类。

请注意我尝试使用ReportingService2010SoapClient 此类与ReportingService2010的文档不匹配。 例如, ListChildren()只接受4个参数,并且Url属性不存在。

创建代理类并将其包含在您的应用程序中,或者向ReportingService添加Web引用。 该教程可在那里找到:

http://technet.microsoft.com/en-us/library/ms155134.aspx

请注意,如果您要使用代理类并且使用多个端点(ReportExecution,ReportingService),则应在不同的命名空间上生成代理类,否则会产生冲突。

你是通过网络参考做的吗? 如果是这样,请尝试在命令行中使用WSDL。 命令行语法:

 wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" http://serverName/reportserver/ReportService2010.asmx?wsdl 

刚遇到完全相同的问题。 ReportingService2010SoapClient类可用,但ReportingService2010类不可用。 让我疯了。 我已将其添加为“服务引用”,但您必须将其添加为“Web引用”,如下所示:

  1. 删除旧的服务参考

  2. 右键单击References。 出现“添加服务引用”对话框。

  3. 现在不要输入WSDL URL,而是:单击左下角的“高级”按钮。

  4. 出现“服务参考设置”对话框。

  5. 在左下角,单击“添加Web引用”按钮。

  6. 现在输入WSDL的URL。 (对我来说是servername / ReportServer / ReportService2010.asmx)

  7. 单击右侧的小箭头,将花费很多时间加载。

  8. 命名Web引用,我使用“ReportingService2010WebReference”,但ReportingService2010“也可以正常工作。

  9. 点击“添加参考”

  10. 在您的代码中,将using语句更新为“使用.ReportingService2010WebReference(或您选择的任何名称)

码:

 private MySol.ReportService2010WebReference.ReportingService2010 rsClient; rsClient = new ReportingService2010(); rsClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; CatalogItem[] items = null; items = rsClient.ListChildren("/", false); foreach (var item in items) { tr.ErrorMessage += (item.Path + " " + item.CreatedBy); } 

第一次尝试。 没有触及Web.config文件。

不要添加Web引用

按照以下步骤,它会工作得很好。

1)确保你有.netframework> = 4.6.1

2)以管理员身份运行命令提示符

3)cd C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6.1工具

4)生成类:wsdl / proxyusername:用户名/ proxypassword:密码-out:Reportingservice2010.cs http://Servername/Reportserver/ReportService2010.asmx?wsdl

另外)运行wsdl /? for help文件将输出:C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6.1工具

5)将.cs文件添加到项目中

改变这个;

 private readonly ReportingService2010 _rs = new ReportingService2010() 

 private readonly ReportingService2010SoapClient _rs = new ReportingService2010SoapClient() 

您正在尝试为不存在的类创建实例,并且添加引用会创建相应的* Client类供您实例化。