我收到从响应HttpWebRequest的 (使用修改后的版本杰夫·里希特的CCR包装 ),然后检查了几个头,以决定是否要继续下载。 有时候我可能不想继续,所以我啥都发出response.Close和request.Abort 。 是否有必要发放的GetResponseStream然后关闭流,或者是这种隐含在一个叫response.Close ?
发出的GetResponse,后文档的状态 :
你必须调用Close方法关闭流和释放连接。 如果不这样做可能会导致您的应用程序连接断开了。
那么,这是否意味着,一旦我们有一个响应,那么它是强制性获得流并关闭它?
我们看到一些相当奇怪的问题,其中雄下载最终被淹没系统。 这似乎是一个资源泄漏最强的候选人,但不知道其他人有这个问题的经验。
顺便说一句:这是安全的假设,这是同流的GetResponseStream两次?
实际上,为了webResponse.Close()的调用将关闭响应流。
响应是IDisposable的,我建议你使用一个声明。
调用HttpWebResponse.Close含蓄关闭响应流。
从文档:
Close方法关闭响应流并释放其他请求重用资源的连接
你必须调用要么Stream.Close或HttpWebResponse.Close方法关闭该流并释放重复使用的连接。 这是没有必要同时调用Stream.Close和HttpWebResponse.Close,但这样做不会导致错误。 如果无法关闭该流可能会导致您的应用程序连接断开了。
和为贵双的GetResponseStream问题,虽然文件没有明确提到它,它总是会返回相同的流对象,无论你有多少次调用它。
这样做WCF连接
//Done with the service, let's close it.
try
{
if (client.State != System.ServiceModel.CommunicationState.Faulted)
{
client.Close();
}
}
catch (Exception ex)
{
client.Abort();
}