Cannot close stream until all bytes are written错误怎么处理。

披着虎皮 的石头 2009-06-26 12:30:57
static void ProcessHttpClient(object obj)//请求处理
{
HttpListenerContext context = obj as HttpListenerContext;
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;

try
{
StreamReader streamReader = new StreamReader(request.InputStream);
string Instr = streamReader.ReadToEnd();

streamReader.Close();
request.InputStream.Close();

byte[] buffer = System.Text.Encoding.UTF8.GetBytes("");

response.ContentType = "POST";
response.ContentLength64 = buffer.Length;

response.OutputStream.Write(buffer, 0, buffer.Length);
}
catch
{}
finally
{
response.OutputStream.Close();
response.Close();
}
}

在上面的代码中,如果response.OutputStream.Write时出错,
就会执行finally中的 response.OutputStream.Close();
但是出现Cannot close stream until all bytes are written,怎么避免这种错误。
...全文
227 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是不是说只要调用response.Close(); 就可以释放response.OutputStream这个流。
zenowolf 2009-06-26
  • 打赏
  • 举报
回复
StreamReader .flush();
大飞飞虫 2009-06-26
  • 打赏
  • 举报
回复
response.end 即可.不要手工去操作response内的流

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧