我正在尝试从我的C#代码中使用Yellowfin服务。它们是用Java编写的,因此我按照他们的建议enabed JAX services。
因此,JAX服务are running位于“ localhost:8083 / webservices / LegacyReportService?wsdl”,并且无法使它们作为specified工作(我正在运行ReportService的RUNDASHBOARDREPORT方法)
这就是我的用法:
对在我的本地主机上运行的YF服务的Web引用:
在这里我叫服务
public static reportServiceResponse RunDashboardReport(Int32 reportId, Int32 tabId)
{
var rq = CreateYfRequest("RUNDASHBOARDREPORT");
rq.reportId = reportId;
rq.dashboardTabId = tabId;
using (var srv = new LegacyReportServiceService())
{
var resp = srv.remoteReportCall(rq); // there is no "remoteAdministrationCall" as in the doc
return resp;
}
}
private static reportServiceRequest CreateYfRequest(String command)
{
var rq = new reportServiceRequest
{
loginId = "[email protected]",
password = "test",
orgId = 1, // This is the primary organization
reportRequest = command
};
return rq;
}
而且我get“在System.Xml.dll中发生了'System.InvalidOperationException'类型的异常”
创建时
new LegacyReportServiceService()
我也尝试将其添加为服务参考,但是结果是相同的。
YF团队说:“我们的客户确实使用.net和C#来开发其集成代码。...支持团队已确认Yellowfin目录中development文件夹中提供的示例代码,并且WSDL代码正确且无法复制您在原始电子邮件中发现的错误。”
请帮助我找出我在做什么错
最佳答案
我发现VS从“ localhost:8083 / webservices / LegacyReportService?xsd = 1”生成用于Web服务访问的类,并且这样做不正确。它使String []成为原始String类型。
因此,编辑生成的Web Reference的Reference.cs就可以了。至少,我得到了错误代码25“未授权”的响应。