【问题标题】:How to return DataSet (xsd) in WCF如何在 WCF 中返回 DataSet (xsd)
【发布时间】:2017-03-29 16:23:20
【问题描述】:

我有一个在特定方法上返回 DataSet 的库。我需要通过 WCF 公开这个 DataSet,客户端应用程序将使用它作为报告生成器的数据源(确切地说是 DevExpress XtraReport)。 DataSet 包含大约 58 个 DataTable,其中包括一个包含报表配置的表。

如何通过 wcf 将此数据集发送到客户端 (ASP.NET MVC)

当前代码

public ReponseData GetReportData (RequestData request){
 var reportData = library.GetReportData(request.Param1, reqest.Param2)   //returns DataSet

   var respone = new ResponseData {
        RequiredField = value, //requied for validation on the client
      //When I put DataSet here my wcf just breaks entirely 
      //.. what to do here to send over the DataSet??
   };
return response;

}

【问题讨论】:

  • 什么是响应数据?你上面的代码是 WCF web 方法吗?您只需要在您的服务中有一个 DataSet 的返回类型。
  • 为什么不使用 xml/json 代替(实际上 DataSet 可能会以 xml 格式传输)
  • @Wheels73 我在客户端收到错误消息:“底层连接意外关闭”。但没有任何问题(或在 WCF 上引发任何异常)。
  • 在这种情况发生之前等待多长时间。由于服务和客户端之间必须发生大量的序列化,数据集的速度非常慢。如果您有 58 个数据表,您可能想尝试将其拆分为更小的请求。
  • 哦,好吧..让我开始吧

标签: c# wcf xsd


【解决方案1】:

解决方案是使用 DataSet 的方法获取 XML 格式的数据,并将 XML 字符串而不是 DataSet 本身传递给服务。

PassDataSet(dsDataSet.GetXmlSchema(), dsDataSet.GetXml())

【讨论】:

  • 谢谢!!.. 我最终发送了 xml 字符串而不是数据集
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 2011-05-18
  • 2013-07-07
  • 1970-01-01
  • 2016-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多