これは実際には問題ではありませんが、この要件を満たしているので、C#でWindowsアプリケーションを作成して、すべての社内外のシステムを監視する必要があります。これらのシステムのいくつかはウェブサイトであり、一部は石鹸API呼び出しを含むデータベースとの間で常時データをポーリングするWindowsアプリケーションです。私のアプリケーションが行う必要があるのは、これらのシステムを監視し、ダウンタイムが発生するたびに、およびオフラインになった時間を関連ユーザに通知することです。C# - Windows Formsアプリケーションモニタ
私はDBMSとしてSQL Serverを使用してデータベース設計を行ってきましたが、実装に関しては固執しています。これを達成するために私はどのようなアプローチをとることができますかTCP/IP? このアプリケーションはx秒ごとに実行する必要があります。
私は列挙型の中にいくつかのフラグを作成しました。このフラグは、誤った状態であるかどうか、またはユーザーに警告する必要があるかどうかをアプリケーションの状態を常にチェックします。これに加えて、DLLを介してサービスモニタのすべてのコンポーネントを初期化するコンストラクタも作成しました。そのような
何か:
[Flags]
public enum ClientApplicationState
{
ERROR = 0,
WARNING = 1,
OK = 2
}
/// <summary>
/// Constructor which sets up and initalizes all the components for the Service Monitoring DLL
/// </summary>
/// <param name="applicationName">The Name Of The Application</param>
/// <param name="port">The port on which to listen to</param>
/// <param name="timerPeriod"> Optional time in milisecinds to overide the default update freq (default is 1000)</param>
public ServiceMonitor(string applicationName, short port, int timerPeriod = 1000)
{
_messages = new List<string>();
_state = ClientApplicationState.OK;
//TODO: Throw port exception
try
{
_monClient = new MonitoringClient(applicationName, ClientApplicationState.OK, "Starting Up",
Process.GetCurrentProcess().ProcessName, port);
}
catch (Exception e)
{
}
InitTimer(timerPeriod);
_updateTimer.Enabled = true;
}
のウェブサイトがホストされ、生きているとWindowsアプリケーションは、当社のWindows 2012 R2サーバー上で実行されています。
これにはどのようにアプローチできますか?
「サービス」は文脈から少し誤って解釈されている。私が監視する必要のあるアプリケーションは、Windowsサービスではなく、Windowsサービスを作成するはずです。これをクリアするだけです。 –