0
Windowsサービスとして起動されるアプリケーションがあります。Windowsサービスからコンソールに書き込むときにArgumentOutOfRangeExceptionが発生する
public void Process(ICmKofaxBatch batch)
{
if (batch == null)
{
Console.Write(".");
return;
}
// logic of method
}
私がnullかどうかを確認、コンソールにドットを書き到達しない間、すべては大丈夫です:
その方法の一つは、このようなものです。バッチが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サービスからコンソールに何かを出力しようとすると、何もしないと思った。
私はコンソールに書き込む能力がないことを知っています。しかし、Console.Writeへの呼び出しは例外ではなくてはなりません。 Console.Writeはstdoutに書き込み、サービスアプリケーションの場合は定義されていないので、Console.Writeはどこにも書きません。 – rpeshkov
待って、あなたはハンマーで頭に自分自身を打つことが傷ついてはならないと主張している? – Will