【问题标题】:Disk Space error磁盘空间错误
【发布时间】:2025-12-24 13:50:10
【问题描述】:

我有一个 ASP.NET 应用程序,它位于不时收到磁盘空间警告的服务器上。 显然,最简单的解决方案是在监管 I/O 活动不起作用时获得更多磁盘空间。但我不想编辑注册表来更改触发警告的值。但问题是我的 .NET 应用程序抛出磁盘空间警告消息。有没有办法告诉 .Net 应用程序忽略此错误并继续?

【问题讨论】:

  • 是例外吗?或者 .Net 应用程序中的错误是什么意思?

标签: asp.net windows


【解决方案1】:

如果 .NET 抛出一个错误,表明您的磁盘空间不足,这不仅仅是一个警告。一些代码尝试写入磁盘并失败。

您需要找出导致使用过多磁盘空间的原因。优化代码以减少使用量,如果无法获得足够的磁盘空间,则优雅地处理这种情况,或者添加更多硬件。

【讨论】:

    【解决方案2】:

    当您想忽略错误时,可以将调用包装在 try 块中,然后像这样吞下错误:

    try
    {
        DoSomethingThatCausesAnError();
    }
    catch
    {
        //Swallow the exception
    }
    

    如果可能的话,你应该只接受特定的错误:

    try
    {
        DoSomethingThatCausesAnError();
    }
    catch(System.IO.IOException exception)
    {
        //Swallow the exception
    }
    

    不幸的是,仅捕获“驱动器已满”错误有点棘手。您需要访问受保护的 HResult 成员。有关如何执行此操作的提示,请单击 here

    附:这样做可能是一个非常糟糕的主意。您真的应该弄清楚为什么您的系统会报告磁盘已满错误并解决根本原因。

    【讨论】:

    • 正如您所指出的,仅仅吞下异常是非常不好的做法。它隐藏了潜在的问题,并可能导致用户相信代码已经运行,而实际上并没有运行。
    • 我同意 John 和 Eric 的观点,我们需要添加更多磁盘空间。但是,我想绕过错误。