我有:
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属性不存在。
答案 0 :(得分:30)
刚遇到完全相同的问题。 ReportingService2010SoapClient类可用,但ReportingService2010类不可用。让我疯了我已将其添加为“服务引用”,但您必须将其添加为“Web引用”,如下所示:
删除旧的服务参考
右键单击“参考”。出现“添加服务引用”对话框。
现在不要输入WSDL URL,而是:点击左下方的“高级”按钮。
出现“服务参考设置”对话框。
在左下角,单击“添加Web引用”按钮。
现在输入WSDL的URL。 (对我来说是servername / ReportServer / ReportService2010.asmx)
单击右侧的小箭头,将花费很多时间加载。
为Web引用命名,我使用了“ReportingService2010WebReference”,但ReportingService2010“也可以正常工作。
点击“添加参考”
在您的代码中,将您的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文件。
答案 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类供您实例化。