从Windows服务写入控制台时ArgumentOutOfRangeException

时间:2016-08-11 13:46:59

标签: c#

我有一个作为Windows服务启动的应用程序。

其中一种方法是这样的:

public void Process(ICmKofaxBatch batch)
{
    if (batch == null)
    {
        Console.Write(".");
        return;
    }
    // logic of method
}

一切都很好,而我没有达到检查null并将点写入控制台。当batch为null时,我得到一个异常

    System.ArgumentOutOfRangeException: Count cannot be less than zero.
Parameter name: count
    at System.String.CopyTo(Int32 sourceIndex, Char[] destination, Int32 destinationIndex, Int32 count)
    at System.IO.StreamWriter.Write(String value)
    at System.IO.TextWriter.SyncTextWriter.Write(String value)
    at System.Console.Write(String value)
    at MyCompany.CustomerCompany.Eds.Splitter.Services.Implementations.Application.ApplicationService.Process(ICmKofaxBatch batch) in d:\MyCompany\AI\src\Kofax\Custom Modules\MyCompany.CustomerCompany.Eds.Splitter\ApplicationService.cs:line 56
    at MyCompany.CustomerCompany.Eds.Splitter.SplitterCustomModule.Process(ICmKofaxBatch batch) in d:\MyCompany\AI\src\Kofax\Custom Modules\MyCompany.CustomerCompany.Eds.Splitter\SplitterCustomModule.cs:line 54

在哪种情况下会发生此异常?我认为当尝试从Windows服务向控制台输出内容时,它什么都不做。

1 个答案:

答案 0 :(得分:0)

在Windows服务中,无法写入控制台。我建议您写入事件日志或日志文件。