远程主机关闭了连接。错误代码是0x80070057

时间:2010-08-19 01:50:36

标签: asp.net iis-7

我在我的一台服务器上的日志中收到了很多这些错误消息,并且间歇性地在另外两台服务器上收到了这些错误消息。

谷歌搜索没有透露太多信息,主要与文件上传或下载被中断有关。

我的网页基本上只是文本文件中带有“ok”的文件,只有.aspx扩展名用于未来的计划,没有实际的代码为页面供电。服务器都是运行IIS7 / ASP.NET 4的Windows Server 2008 RC2 x64。

据统计,它在1%的时间内正好发生,但由于流量仍然使我的事件日志每分钟有2或3条消息混乱。

编辑: 我追踪了这个问题,将缓冲设置为true使其停止发生。

2 个答案:

答案 0 :(得分:7)

我知道这已经得到了解答,但是在这有助于其他人的情况下,它发生在我的MVC项目中,有时当我在存储库的顶部设置了一个dbContext时。当我切换到用于数据库连接的using语句时,错误再也不会出现。

所以,我从每个存储库的顶部开始:

DbContext db = new DbContext();

对于每个单独的连接:

using (DbContext db = new DbContext())
{
     //db connection stuff here....
}

值得一提的是,没有人报告过这个错误,并且没有向浏览器显示任何错误,但很高兴将其从日志中删除!

答案 1 :(得分:3)

您是否正在返回Stream

您可能需要在方法完成后关闭它。

看看这个:Closing Returned Streams in WCF

以下是此博客建议的代码:

public Stream GetFile(string path) 
{
   Stream fileStream = null;    

   try   
   {
      fileStream = File.OpenRead(path);
   }
   catch(Exception)
   {
      return null;
   }

   OperationContext clientContext = OperationContext.Current;
   clientContext.OperationCompleted += 
       new EventHandler(delegate(object sender, EventArgs args)
       {
            if (fileStream != null) fileStream.Dispose();
       });
   return fileStream;
}