Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回DataTable时发生WCF基础连接错误_C#_Web Services_Wcf_Datatable - Fatal编程技术网

C# 返回DataTable时发生WCF基础连接错误

C# 返回DataTable时发生WCF基础连接错误,c#,web-services,wcf,datatable,C#,Web Services,Wcf,Datatable,我创建了返回dataTable的webservices方法。 但是,我得到了一个错误: 基础连接已关闭:连接意外关闭 这是我在IWS文件中的方法 [ServiceContract] public interface IWsBabyCare { [OperationContract] DataTable GetPurchaseOrderDetails(); [OperationContract] DataTable GetPurchaseOrders(int

我创建了返回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添加一个名称会有所帮助,但我只会返回一个空datatable。

您得到的异常可能有大约

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

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

此外,您的服务操作还指定了DataTable的返回类型,即web服务编号。您应该传递的类型正好定义了所需的数据。例如,如果您的数据库表包含Apple,则应该传递List的返回类型

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

创建基于控制台的服务和客户端项目。 创建一个服务操作,该操作返回一些基本类型,如字符串。 使所有代码尽可能简单。您应该能够在每个服务和客户机上使用不到10行代码和大约10行xml配置来实现这一点。 一旦您成功地实现了这一点,然后逐渐添加新的操作和更复杂的返回类型。
你的数据访问密码在哪里?您做了什么来排除连接故障?您不应该从服务操作返回数据表类型。看这里:你最终发现问题了吗?