调用正在调用Web服务的代理的代码是:
ReportExecutionService rs = new ReportExecutionService(); rs.Timeout = System.Threading.Timeout.Infinite; rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
string execURL = ConfigurationSettings.AppSettings [“ReportsBasePath”] + @“/ ReportExecution2005.asmx”; rs.Url = execURL;
ExecutionInfo execInfo = rs.LoadReport(“/ Reports / rptSharedRepresentativeReport”,null);
请注意,LoadReport功能的第一个参数是:报告
错误:
未指定参数“报告”的值。它在函数调用中丢失,或者设置为null 在Microsoft.ReportingServices.WebServer.ReportExecution2005Impl.LoadReport(String Report,String HistoryID,ExecutionInfo2& executionInfo) 在Microsoft.ReportingServices.WebServer.ReportExecutionService.LoadReport(String Report,String HistoryID,ExecutionInfo& executionInfo)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message,WebResponse response,Stream responseStream,Boolean asyncCall) 在System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object []参数) 在ReportExecutionService.LoadReport(String Report,String HistoryID) at Stockamp.Portal.RSData.SAReportServerAccess.GetReportStream(String reportPath,ArrayList parameterValues,String format)
答案 0 :(得分:0)
您是否尝试过允许空值?
如果不起作用,请检查XML。我经常注意到你在布局中更改项目时(比如多值和空值),你认为你已经改变了代码,但它确实没有改变。
无论您的报告参数说什么,XML都是真正重要的。
在报告中,点击查看 - >布局或数据选项卡中的代码。看到报表的XML定义后,请搜索多值参数的名称。我相信它应该用标签括起来。检查以确保参数具有以下内容:
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
答案 1 :(得分:0)
我使用wsdl为框架1.1重新编写代理文件。这次它有C#名称空间。 现在webservice调用“LoadReport”正在运行。所以不是100%但可能有命名空间 解决了我的问题