2012-03-05 4 views
1

나는 10-20 명이 하루 종일 사용하는 프로그램을 가지고있다. 일이 급속히 변동하기 때문에 가끔 데이터베이스를 오프라인으로 전환하거나 다른 이유로 서버를 다시 시작해야합니다. 나는 각자에게 걸어 가서 묻는 것보다 현재 프로그램에있는 사람이 없는지 확인하는 더 좋은 방법을 원합니다.누군가 내 프로그램을 실행하고 있는지 어떻게 확인할 수 있습니까?

이와 같은 것이 이미 존재하는 경우 휠을 다시 발명하고 싶지 않습니다. I이었다 있었다

꾀 :

  • 때마다 사용자 개방 데이터베이스 "역사"항목을 만들거나 현재 누가 시스템을 사용하고 있는지 볼 수있는 프로그램을 닫습니다.
  • WCF를 사용하여 클라이언트가 연결될 때마다 X 초마다 서버에 "알립니다".

이 문제에 대한 더 나은 해결책이 있습니까?

+0

ASP.NET, WPF, Winforms 등 어떤 종류의 "프로그램"입니까? –

+0

이것은 Winforms 프로그램입니다 – Origin

+0

아마 당신의 데이터베이스는 당신이 방금 질의 할 수있는 현재 로그인 한 사용자의 기록을 유지합니다. 그 중 하나의 시스템 테이블 ... – Dialecticus

답변

0

한 가지 해결책은 누군가가 로그온 할 때마다 레코드가 만들어 지도록 데이터베이스 테이블을 만드는 것입니다. 매 15 분마다 마지막 업데이트 시간으로 업데이트됩니다. 닫을 때 레코드를 삭제합니다. 어떤 기록이라도 15 분 이상 길다면 앱 충돌입니다.

거친하지만 작동하지만 간단한 DB 쿼리를 실행할 수 있습니다.

+0

감사합니다. 이것은 제가 고려해 왔던 옵션입니다. 그러나 다른 사람들이 "hackish"한 것인지 확실하지 않았습니다. – Origin

+1

죄송합니다, 저에게 정말로 '해킹'입니다 ... – Steve

+0

응답 LongArm에 감사드립니다.당신의 대답이 얼마나 나쁜지에 대해 불평하는 모든 사람들이 자신들의 답변을 게시하지 않았다는 것은 불행한 일입니다. 나는'net session','net file','netstat | "{portNumberOfSqlServer}"를 찾아 누가 현재 컴퓨터에 연결되어 있는지 알아냅니다. – Origin

0

하나의 해결책은 네트워크를 통해 일부 데이터를 UdpClient으로 브로드 캐스트하고 응답이 응용 프로그램의 인스턴스가 온라인인지 확인하는 것입니다.

이 솔루션이 귀하의 경우에 실행 가능한지 여부는 알 수 없지만이 솔루션은 일부 사람들에게 유용 할 것으로 생각했습니다.

관련 문제