나는 병합 동기화 기능을 허용하기 위해 SQL 서버가 사용 가능할 때를 알아야 할 winform 앱이 있습니다. 나는 한 번에 작동하는 아래의 변형을 시도했지만 좀 더 역동적 인 것을 내놓고 싶습니다.네트워크 상태의 실시간 모니터링. 어떤 사건이 제기 되었습니까?
아래 기능 (감사합니다 Alex_L)은 SQL이 실행되고 잘 작동하는 1433 포트를 확인합니다. 내가 성취하고자하는 것은 Real-Time에서 이것을 모니터하는 방법입니다. Windows 서비스를 만들어야합니까? 네트워크 연결 변경과 같은 다른 네트워크 이벤트는 어떻게됩니까?
가끔씩 연결된 응용 프로그램의 사용법은 간단합니다. 그들이 우리의 네트워크에 있다면 병합 복제 부분을 사용할 수 있습니다. 그들이 우리의 네트워크에 없다면 그렇지 않습니다. SQL Server는 우리 네트워크에서 절대로 사용할 수 없어야하며 항상 켜져 있으면 사용할 수 있어야합니다.
즉, SQL 인스턴스 대신 현재 네트워크를 감지하는 솔루션에 개방적이라고 할 수 있습니다.
private static bool IsSqlAvailable()
{
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect("10.250.50.30", 1433);
return true;
}
catch
{
return false;
}
}
감사합니다, 나는 그것을 몰랐다. 이것을 실시간으로 모니터하는 방법은 없습니까? 실시간으로 '흉내 내기'위해 정기적으로 수동으로 점검해야합니까? –
제가 생각하기에, 가장 간단한 방법은 (그리고 제가 프로젝트에서하는 것처럼) Windows 서비스를 작성하는 것입니다. 이 작은 서비스는 Timer 클래스를 사용하여 SQL Server의 가용성을 확인하고 메시지를 적절한 관리자에게 보냅니다. –