• WCF中序列化DataTable出错


      今天用wcf传送datatable时出现下列错误。我估计是序列化的问题。

    "An error occurred while receiving the HTTP response to ****.svc. 
    This could be due to the service endpoint binding not using the HTTP protocol. ……"

      网上有人给出了解决方法,即设置DataTable的TableName属性即可。

    样例代码:

      建立服务契约。契约中一个返加DataTable的方法,一个是返回DataSet的方法。

    namespace NavigateService
    {
        [ServiceContract]
        
    public interface INavigateService
        {
            [OperationContract]
            DataTable GetTableAllData(
    string tableName);

            [OperationContract]
            DataSet GetDataSet(List
    <DataSetObject> tables);
        }
    }


      实现契约,MsSql类是自己建立的一个类,用于取数据。

      注意:在返回DataTable的GetTableAllData方法中, tableResult设置了TableName属性。这样Wcf序列化时就不会出错。

         而返回DataSet的方法不需要作任何设置。

    using System.Data;
    using DL;

    namespace NavigateService
    {
        public class NavigateService : INavigateService
        {
            MsSql msSql 
    = null;
            
    public NavigateService()
            {
                msSql 
    = new MsSql();
            }

            
    public DataTable GetTableAllData(string tableName)
            {
                DataTable tableResult 
    = null;
                tableResult 
    = msSql.GetTableAllData(tableName);
                tableResult.
    TableName = "navigateData";
                
    return tableResult;
            }

            
    public DataSet GetDataSet(List<DataSetObject> tables)
            {
                DataSet resultDataSet 
    = new DataSet();
                resultDataSet 
    = msSql.GetDataSet(tables);
                
    return resultDataSet;
            }
        }
    }


  • 相关阅读:
    leetcode 87. Scramble String
    leetcode 1278 分割回文串
    back propagation in NNs and RNNs
    刷题笔记——单调栈
    unsupervised learning -- K MEANS
    install j3d on macOS
    java extract jar file on MacOS
    back-propagation algorithm
    day 4
    day 3
  • 原文地址:https://www.cnblogs.com/scottckt/p/1850028.html
Copyright © 2020-2023  润新知