WCF를 사용하여 조직의 모든 컴퓨터가 주기적으로 "집으로 전화"하도록하는 솔루션을 설계하고 있습니다. 조직의 각 컴퓨터에 날씨 센서가 연결되어 있다고 가정 해 봅시다. 이 응용 프로그램의 목적은 날씨가 그 위치에 무엇이 있는지보고하기 위해 각 컴퓨터가 중앙 서버에 연결해야한다는 것입니다. 전송할 데이터는 문자열로 인코딩됩니다. WCF를 사용하여 컴퓨터를 "전화 걸기"로 만드는 방법은 무엇입니까?
내가 하루에 한 번하는 방법SendWeatherReport
를 호출하는 Windows 서비스를 가지고 토론을 위해 가정하자. 이 함수의 서명은 다음과 같습니다
void SendWeatherReport(string report);
나는 다음과 같은 인터페이스와 WCF 방법을 설정 한 것으로 가정합니다
[ServiceContract]
public interface IWeatherReportReceiver
{
[OperationContract]
void GetReport(string report);
}
나는 다음과 같은 요구 사항이 있습니다 :
1) 내 일기 예보를 정보는 독점적이며 기밀입니다. 보안 목적으로 암호화되어야합니다.
2) 날씨 정보는 인터넷을 통해 전송됩니다. 보고서를 수신하기 위해 WCF 서비스를 실행하는 컴퓨터는 example.com
입니다.
3) 날씨 보고서는 서버에 그것의 방법에 약간의 오버 열심히 구성 방화벽을지나 받아야합니다. 지금은 내 요구 사항을 설명했다고
, 나는 이러한 요구 사항을 충족하기 위해 내 엔드 포인트 구성을 설정할 수있는 방법을 나에게 설명해주십시오.
(1)을 만족하려면 net tcp 바인딩을 사용해야한다고 생각합니다. (3)에서이 바인딩을 포트 80, 443 또는 다른 일반적으로 사용되는 포트에서 작동하도록 구성 할 수 있습니다. 여기 내 주요 관심사는 내가
tcp 바인딩을 사용할 필요가 없습니다. 전송 보안을 사용하는 http 바인딩은 데이터를 암호화합니다. 그러나 서버 측에 SSL 인증서가 필요합니다. 또한 표준 https이기 때문에 방화벽에 의해 차단 될 가능성이 적습니다. – Hinek