バックエンドのWindowsサービスコードで_ASSERTEを使用することを主張したいと思います。しかし、私が理解しているように、メッセージボックスのためにデフォルトの動作はサービスをハングします。Windowsサービスのアサーション
Windowsサービスでアサーションを安全に行うには、どのような方法が最適ですか?
編集: コンソールモードで実行している場合、コードは通常の動作を使用する必要があります。例えばユニットテストされているとき。
バックエンドのWindowsサービスコードで_ASSERTEを使用することを主張したいと思います。しかし、私が理解しているように、メッセージボックスのためにデフォルトの動作はサービスをハングします。Windowsサービスのアサーション
Windowsサービスでアサーションを安全に行うには、どのような方法が最適ですか?
編集: コンソールモードで実行している場合、コードは通常の動作を使用する必要があります。例えばユニットテストされているとき。
あなた自身のアサート機能を書くだけです。
void assert(bool condition)
{
//Stop service and log failure to event log here ;)
}
アサーションに何をしますか?アサーションでいくつかのサービスが失敗し、エラーをログに記録するだけでなく、NASAに電子メールを送信し、差し迫った宇宙侵攻を警告する必要があるサービスもあるため、実際問題特定の解決策です。 –
NASAに電子メールを送るのは、アサーションではうまくいかないと思う。ご存じのように、アプリケーションのデバッグバージョンのテスト中に使用されます。私は主張の基本的な利益を得たいと思います。いくつかのASSERTが失敗したときに通知を受け取ります(何か明白な、無視するのは難しい)。メッセージを無視することができるメッセージボックスがないか、または破損しているなどの理由があります。おそらくコンフィギュレーションファイルのオプションのように、失敗したアサーションに対処する方法を指定すると思います。サービスを停止するかどうかを決定します。しかし、最も重要なことは、私が言ったように、私は何かが間違っていたことを知りたいと思います。 – haggag