1

我创建了返回数据表的 web 服务方法。但是,我收到错误:

底层连接被关闭:连接被意外关闭

这是我在 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);
}

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

4

1 回答 1

0

您得到的异常可能有大约500 个不同的原因

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

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

此外,您的服务操作指定了一个返回类型,DataTable该类型是一个的Web 服务禁止。您应该传递精确定义所需数据的类型(例如,如果您的数据库表包含苹果,则应传递List<Apple>.

这就是我建议你应该继续的方式。

  1. 创建基于控制台的服务和客户端项目。
  2. 创建一个返回一些原始类型(如字符串)的服务操作。
  3. 使所有代码尽可能简单。您应该能够在每个服务和客户端上使用少于 10 行代码和大约 10 行 xml 配置来完成这项工作。
  4. 一旦你设法让它工作,然后逐渐添加新的操作和更复杂的返回类型。
于 2012-12-10T09:00:48.740 回答