2014-01-10 68 views
0

失敗,我有我的接口:WCF服務,而返回的SQLConnection

[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

你爲什麼要返回SqlConnection? – Ehsan

回答

3

SqlConnection不是可序列化的,所以你不能從WCF服務方法返回它。也沒有任何意義,因爲您將無法使用此連接從另一臺計算機連接到SQL Server,您將需要創建一個新的連接。如果傳遞「連接」是必要的,則可以傳遞連接字符串和其他必要的設置來創建連接。