我正在尝试从我的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“未授权”的响应。

10-05 17:42