위치 및 버전을 발표하기 위해 사내 .NET 애플리케이션을위한 좋은 방송 메커니즘?

StackOverflow https://stackoverflow.com/questions/1821513

문제

사용 중이라고 발표 할 수있는 가벼운 방법으로 많은 수의 사내 .NET 애플리케이션을 제공하고 싶습니다. 내 목표는 사용자가 지원 체크인 및/또는 업그레이드를위한 알림을 통해 어떤 사용자가 혜택을받을 수 있는지 추적하는 것입니다.

이것은 사내 네트워크에 있습니다. 모든 머신 사이에는 확실히 IP 연결이 있으며 아마도 UDP가있을 것입니다. (그러나 아마도 멀티 캐스트는 아닐 것입니다.)

알려진 사내 공유에 글을 쓰거나 알려진 URL을로드하는 것은 가능성이지만 신뢰성을 희생하면서도 가능한 한 완전히 애플리케이션 자체에 미치는 영향을 최소화하고 싶습니다. 따라서 타임 아웃을 위험에 빠뜨리지 않으려 고합니다 (예 : 중앙 집중식 자원에 액세스하고 사라진 경우). 이상적으로는 작업자 스레드를 시작하지 않습니다.

또한 여러 청취자를 허용하는 것이 좋을 것입니다. 이것이 서비스를 부르는 대신 방송에 대해 생각하는 또 다른 이유입니다.

이를 위해 안전하고 효과적으로 사용할 수있는 일종의 화재 및 포당 방송 메커니즘이 있습니까?

도움이 되었습니까?

해결책

이를위한 많은 옵션이 있지만 구현하기가 매우 쉽고 기준을 충족하는 옵션이 있습니다. 비동기 웹 서비스 전화.

이것은 작업자 스레드를 시작할 필요가 없습니다 (프레임 워크는 무대 뒤에서이를 수행합니다). 결과를 가져 오기 위해 해당 링크에 요약 된 옵션 중 하나를 사용하는 대신 호출 앱에 의미가 없기 때문에 결과를 무시하십시오.

다른 팁

나는 정확히 "브로드 캐스트"가 아니지만 비슷한 일을했습니다.

나는 회사 사용에 몇 가지 비 기술을 가지고있는 집 도구를 가지고 있습니다. 특정 EXE에 대한 네트워크 공유를 확인하고 (사용하려면 다운로드 할 수있는 동일한 EXE) 해당 파일의 버전 #을 실행 어셈블리와 비교합니다. 네트워크의 네트워크가 더 새롭면 사용자에게 새 새를 다운로드하도록 알리십시오.

나와 같은 건물 내에서만 사용될 무언가에 대한 자동 업데이트를 설정하는 것보다 훨씬 간단합니다.

업그레이드가 문제가되지 않으면 (즉, 이전 버전을 사용하는 경우가 더 나은 경우가 없습니다), 비슷한 일로 내가 한 일을 수행 할 수 있습니다.

사람들이 실제로 출시 한 응용 프로그램은 업데이트 프로그램이며, 네트워크 공유에서 파일 버전과 타임 스탬프를 확인하고 최신 버전이 존재하는 경우 프로그램 디렉토리에 복사합니다. 그런 다음 프로그램을 실행합니다 (업데이트되었는지 여부).

var current = new FileInfo(local);
var latest = new FileInfo(remote);

if (!current.Exists)
    latest.CopyTo(local);

var currentVersion = FileVersionInfo.GetVersionInfo(local);
var latestVersion = FileVersionInfo.GetVersionInfo(remote);

if (latest.CreationTime > current.CreationTime || latestVersion.FileVersion != currentVersion.FileVersion)
    latest.CopyTo(local, true);

Process.Start(local)

또한 프로그램 자체에 업데이트 업데이트가 필요한지 확인할 수 있습니다 (파일 잠금으로 인해 업데이트가 자체 업데이트 할 수 없으므로)

약간의 실험 후, 나는 Win32를 사용하여 좋은 결과를 얻었습니다. 메일 슬롯.

공식 관리 래퍼는 없지만 기능은 다음과 같은 예에서 보여 지듯이 Pinvoke를 통해 사용하기가 간단합니다. 이 하나.

'도메인'MailSlot을 사용하면 진정한 방송 메커니즘이 제공되며 여러 리스너를 허용하며 잘 알려진 서버에 대한 요구 사항이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top