我有一个作为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服务向控制台输出内容时,它什么都不做。
答案 0 :(得分:0)
在Windows服务中,无法写入控制台。我建议您写入事件日志或日志文件。