2010-08-19 89 views
8

我在我的一台服务器上的日志中收到了很多这些错误消息,并且间歇性地在其他两台服务器上收到了这些错误消息。远程主机关闭连接。错误代码是0x80070057

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

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

统计上,它发生在1%以下的时间,但是由于流量仍然使我的事件日志中包含2或3条消息每分钟。

编辑: 我跟踪了这​​个问题,将缓冲设置为true可以停止它的发生。

+0

你找到答案? – onder 2010-10-06 10:49:40

+0

嗨伙计,是的问题是我的web.config中的配置设置缓冲设置为false。 – Ben 2010-10-15 16:30:01

+0

有关如何捕获此异常并忽略它的示例,请参阅http://stackoverflow.com/a/22992379/17373。 – 2014-04-10 15:50:22

回答

6

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

所以,我从这个去在每个仓库的顶部:

DbContext db = new DbContext(); 

以此为每个单独的连接:

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

值得一说的,从来没有人报告看到了没有错误曾经显示给浏览器,但很高兴把它从日志中删除!

+0

我喜欢这个答案,因为一般情况下,只要您使用外部资源(文件,Web服务,基本上任何需要关闭的东西),您都应该使用using方法。这也很酷,因为它可以节省您必须编写析构函数或处理方法,因为它也自动处理。 – 2014-09-26 13:26:41

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; 
} 
相关问题