找不到ReportingService2010

P.B*_*key 8 .net c# 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?)
Run Code Online (Sandbox Code Playgroud)

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

MySsrsServiceNamespace.ReportingService2010SoapClient

我怎么应该ReportingService2010上课? MSDN模糊地列出了这个类.

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

Tom*_*ard 32

刚遇到完全相同的问题.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);
}
Run Code Online (Sandbox Code Playgroud)

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


kyo*_*ryu 6

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