Duplex Service 샘플 두가지 입니다.
(WCF Broadcast Event)
처음 WSDualHttpBinding로 구현을 했으나 클라이언트 프로그램이 실행될때 권한 상승이 필요하고 라우터(공유기) 내부에서 실행할 경우 CallBack 메세지를 받지 못하는 문제로 netTCPBinding로 변경 되었습니다.
(IIS 7버전 이상에서 net.tcp 프로토콜 사용 - 808 기본 포트, Console 프로그램 형태나 Windows Service로 사용 가능)
1. 샘플 1
Broadcast message 샘플 입니다. 연결된 모든 클라이언트 혹은 특정 클라이언트로 메세지 전송 및 특정 기능 구현을 할 수 있습니다.
(대표적인 예로 Timer 형태로 서버의 변경 사항을 체크하지 않고 다른 클라이언트에서 변경될때 서비스에 접속되어 있는 클라이언트로 메세지를 보낼 수 있습니다.)
테스트 진행히 프로그램을 여러개 띄워서 실행해 보시거나 다른 PC와 함께 테스트 하시면 됩니다.
(로컬서비스 접속시 Nofity 기능 쪽은 Thread 쪽 문제로 제대로 작동 하지 않을 수 있습니다.)
2. 샘플 2 - 업로드 파일 경로 : D:\Upload Files\DuplexService
Duplex Service 로 구현된 File Upload/DownLoad 샘플입니다.
구현은
1. 클라이언트에서 서버로 파일 전송(업/다운로드) 요청
2. 서버에서 클라이언트로 Callbak
3. Callbak 받은 메세지로 파일 전송 시작
4. 클라이언트에서 수신받은 byte 데이터를 쓰거나 파일을 읽어서 CallBack
5. Callback 받은 메시지로 파일을 쓰거나 보내기
(4,5 번 반복)
기능에 대한 샘플이며 소스 정리가 되지 않았습니다.
파일 전송에서 보이는 ListView의 PrograssBar는 임으로 붙인거라 제대로 움직이지 않습니다. ^^;
3. Visual Studio를 관리자 권한으로 실행해 주셔야 로컬에서 서비스 테스트가 가능 합니다.
4. 솔루션 구조
ClientSide
ClientMain - 사용자 UI
Core - Helper 모음
UIP - 서비스 처리를 위한 모듈
ServerSide
Biz - Entity, Helper, Enum 등이 정의 되어 있습니다.
DuplexService - DuplexService 및 FileService가 정의된 프로젝트 입니다.
DuplexService_StandAlone - DuplexService를 로컬에서 실행(테스트)를 하기 위해 사용되는 프로젝트 입니다.
FileService_StandAlone - FileService를 로컬에서 실행(테스트) 하기 위해 사용되는 프로젝트 입니다.
WCF - IIS 게시를 위한 프로젝트 입니다. (web.config 설정 및 .SVC 파일의 껍데기만 존재 합니다.)
Visual Studio 개발 서버에서는 net.tcp Binding 테스트를 할 수 없더군요.
※ 어디까지나 샘플 소스이며 IIS 반영시에 808 포트가 오픈되어야 하는 문제가 있습니다.
※ netTCP Binding은 MetaData를 웹으로 노출하지 않고 사용이 가능합니다.
※ Endpoint 및 Binding, Service 설정은 WS의 web.config 부분을 확인하시면 됩니다.
'.Net Framework Standard > WindowsApplication' 카테고리의 다른 글
C# Winform - 마우스 포인터가 있는 모니터에 Form 열기 (0) | 2024.01.05 |
---|---|
ClickOnce - System.Security.SecurityException 오류 ( System.Threading.Thread.set_CurrentCulture) (0) | 2022.03.04 |
FormBoardStyle.None 일 때 Form의 이동 (0) | 2022.01.25 |
IIS 보안 적용시 ClickOnce 사용 - TLS (0) | 2017.08.02 |
Visual Studio 조건부 컴파일 기호(전처리, define) 변경에 따른 참조 DLL 경로 자동 변경 입니다. (0) | 2016.06.20 |