返回SQLConnection时WCF服务失败

时间:2014-01-10 07:51:30

标签: c# .net wcf

我的界面为:

 [ServiceContract]
    interface IDataRetrieve
    {
        [OperationContract]
        SqlConnection CreateSQLConnection(string connectionString);
        //DataSet GetSQLData(SqlConnection sqlConnection);
    }

和实施方式:

[DataContract]
    public class DataRetriever:IDataRetrieve
    {
        [OperationBehavior]
        public SqlConnection CreateSQLConnection(string connectionString)
        {

            SqlConnection connection = new SqlConnection(connectionString);
            return connection;
        }
}

现在,在尝试访问该服务时,出现无法访问的错误。

当我将方法的返回类型更改为void时,服务开始工作。我做错了什么?

1 个答案:

答案 0 :(得分:3)

SqlConnection不可序列化,因此您无法从WCF服务方法返回它。它也没有任何意义,因为你无法使用此连接从另一台机器连接到sql server,你需要创建一个新的。如果传递“连接”是必要的,您可以传递连接字符串和创建连接所需的其他设置。