找不到ReportingService2010

时间:2013-09-23 16:27:38

标签: c# .net reporting-services

我有:

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?)

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

MySsrsServiceNamespace.ReportingService2010SoapClient

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

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

4 个答案:

答案 0 :(得分:30)

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

  1. 删除旧的服务参考

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

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

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

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

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

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

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

  9. 点击“添加参考”

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

  11. 代码:

    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文件。

答案 1 :(得分:5)

创建代理类并将其包含在您的应用程序中,或者向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

答案 2 :(得分:1)

不要添加网络参考

按照以下步骤操作就可以了。

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文件添加到项目中

答案 3 :(得分:0)

改变这一点;

private readonly ReportingService2010 _rs = new ReportingService2010()

private readonly ReportingService2010SoapClient _rs = new ReportingService2010SoapClient()

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