ReportingService2010 could not be found

后端 未结 4 794
盖世英雄少女心
盖世英雄少女心 2020-12-14 23:18

I have:

private readonly ReportingService2010 _rs = new ReportingService2010();

Error:

The type or namespace name \'ReportingSer         


        
相关标签:
4条回答
  • 2020-12-14 23:40

    Either create a proxy class and include it in your application or add a web reference to ReportingService. The tutorial is available there:

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

    Note that if you are going for proxy class and you are using more than one endpoint (ReportExecution, ReportingService) you should generate proxy classes on different namespaces, otherwise you will get clashes.

    Did you do it by web reference? If so, try using WSDL at the command line. Command line syntax:

    wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" http://serverName/reportserver/ReportService2010.asmx?wsdl
    
    0 讨论(0)
  • 2020-12-14 23:46

    Do not add a Webreference

    Follow the following steps and it would work just fine.

    1) Make sure you have .netframework >= 4.6.1

    2) Run command prompt as administrator

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

    4) Generate class: wsdl /proxyusername:Username /proxypassword:Password -out:Reportingservice2010.cs http://Servername/Reportserver/ReportService2010.asmx?wsdl

    Additional) Run wsdl /? for help Files will output in: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools

    5) Add the .cs file to your project

    0 讨论(0)
  • 2020-12-14 23:59

    Just ran into the exact same issue. ReportingService2010SoapClient class was available, but the ReportingService2010 class was not. Was driving me nuts. I had added it as a "Service References", but you have to add it as a "Web References", like so:

    1. Delete your old Service Reference

    2. Right click on References. The "Add Service Reference" dialog comes up.

    3. Do not enter the WSDL URL now, instead: Click on the "Advanced" button at the bottom left.

    4. The "Service Reference Settings" dialog comes up.

    5. At the bottom left, click the "Add Web Reference" button.

    6. Now enter the URL for the WSDL. (for me that was servername/ReportServer/ReportService2010.asmx)

    7. Click the small arrow on the right, it will take its sweet time to load.

    8. Name the web reference, I used "ReportingService2010WebReference", but ReportingService2010" probably works just as well.

    9. Click "Add Reference"

    10. In your code, update your using statements to "using .ReportingService2010WebReference (or whatever name you picked)

    Code:

    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);
    }
    

    Worked on the first try. Web.config file wasn't touched.

    0 讨论(0)
  • 2020-12-15 00:00

    Change this;

    private readonly ReportingService2010 _rs = new ReportingService2010()
    

    to

    private readonly ReportingService2010SoapClient _rs = new ReportingService2010SoapClient()
    

    You are attempting to create an instance to a class that does not exists and adding the reference creates a corresponding *Client class for you to instantiate.

    0 讨论(0)
提交回复
热议问题