返回DataTable时WCF底层连接错误

时间:2012-12-09 17:40:47

标签: c# web-services wcf datatable

我创建了返回dataTable的webservices方法。 但是,我收到了错误:

  

基础连接已关闭:连接意外关闭

这是我在IWS文件中的方法

[ServiceContract]
 public interface IWsBabyCare
 {
    [OperationContract]
    DataTable GetPurchaseOrderDetails();

    [OperationContract]
    DataTable GetPurchaseOrders(int PODID);

  }

这是我在WS文件中的方法

public DataTable GetPurchaseOrderDetails()
{
    DataTable POD = new DataTable("POD");
    PurchaseOrderBLL prodBLL = new PurchaseOrderBLL();
    POD = prodBLL.GetPOD();
    POD.TableName = "POD";
    return POD;

}

public DataTable GetPurchaseOrders(int PODID)
{
    PurchaseOrderBLL prodBLL = new PurchaseOrderBLL();
    return prodBLL.GetPurchaseOrders(PODID);
}

我在网上读到,为数据表添加一个名称会有所帮助,但我只会返回一个空的dataTable。

1 个答案:

答案 0 :(得分:0)

您获得的例外情况可能为500 different causes

目前我们所能真正知道的是,您有一个服务接口定义了一些操作,并且您已经实现了操作。

我们对托管服务的方式(控制台,IIS?)或服务和客户端上指定的WCF配置一无所知。您需要在问题中提供此信息。

此外,您的服务操作指定的返回类型为DataTable,这是big网络服务禁止。您应该传递确切定义所需数据的类型(例如,如果数据库表包含苹果,则应传递返回类型List<Apple>

我建议您继续这样做。

  1. 创建基于控制台的服务和客户端项目。
  2. 创建一个服务操作,返回一些基本类型,如字符串。
  3. 使所有代码尽可能简单。您应该能够在每个服务和客户端上使用少于10行代码和大约10行xml配置来实现此功能。
  4. 一旦您设法使其工作,然后逐步添加新操作和更复杂的返回类型。