How do I close a database connection being used to produce a streaming result in a WCF service?

Posted by Dan on Stack Overflow See other posts from Stack Overflow or by Dan
Published on 2010-04-08T01:00:11Z Indexed on 2010/04/08 2:13 UTC
Read the original article Hit count: 369

Filed under:
|
|
|

I have been unable to find any documentation on properly closing database connections in WCF service operations. I have a service that returns a streamed response through the following method.

public virtual Message GetData()
{
    string sqlString = BuildSqlString();
    SqlConnection conn = Utils.GetConnection();
    SqlCommand cmd = new SqlCommand(sqlString, conn);
    XmlReader xr = cmd.ExecuteXmlReader();

    Message msg = Message.CreateMessage(
        OperationContext.Current.IncomingMessageVersion,
        GetResponseAction(),
        xr);

    return msg;
}

I cannot close the connection within the method or the streaming of the response message will be terminated. Since control returns to the WCF system after the completion of that method, I don't know how I can close that connection afterwards. Any suggestions or pointers to additional documentation would be appreciated.

© Stack Overflow or respective owner

Related posts about wcf

Related posts about c#