기업 환경에서 WCF를 사용하는 사람들의 의견을 듣고 싶습니다.기업의 WCF, 귀하의 경험에서 얻은 조언은 무엇입니까?
롤아웃과 관련된 주요 장애물은 무엇입니까? 성능 문제가 있습니까? 모든 팁을 높이 평가했습니다!
가능한 경우 일반 통계 및 서버 구성을 제공해주십시오!
기업 환경에서 WCF를 사용하는 사람들의 의견을 듣고 싶습니다.기업의 WCF, 귀하의 경험에서 얻은 조언은 무엇입니까?
롤아웃과 관련된 주요 장애물은 무엇입니까? 성능 문제가 있습니까? 모든 팁을 높이 평가했습니다!
가능한 경우 일반 통계 및 서버 구성을 제공해주십시오!
WCF는 configuration hell 일 수 있습니다. 너는 diagnostics and svcTraceViewer을 숙지해야한다. 어리석은 쓸모없는 예외를 피하기 위해서이다. 그리고 생성 된 클라이언트의 broken implementation of the disposable pattern에주의하십시오.
기술적으로 IDisposable 문제는 생성 된 클라이언트와 관련이 없습니다. * 모든 * WCF 통신 객체의 "기능"입니다. 그래서, 실제로는 더 나빴습니다. – tomasr
WCF는 확장 성, 확장 성, 보안 성 등을 염두에두고 설계 되었기 때문에 기업용으로 적합합니다.
maxapad가 말했듯이 예외가 거의 없기 때문에 매우 어려울 수 있습니다. 보안을 사용하면 (엔터프라이즈 시나리오에는 확실하게) 인증서를 처리해야하며 의미없는 MessageSecurityExceptions 등이 있습니다. WCF 서비스를 취급
오래된 ASMX 서비스를보다 확실히 어렵습니다,하지만 당신이있어 일단은 노력이 가치가있다. 그것은 당신의 시나리오에 맞게이 같은
공급 서버 CONFIGS 당신에게 도움이되지 않습니다. 올바른 바인딩을 사용하는 것은 보안, 동시성뿐만 아니라 매우 중요합니다. wcf를 사용할 때 갈 방법이 하나도 없습니다. 귀하의 요구 사항에 대해 생각하십시오. 콜백이 필요합니까? 사용자는 무엇입니까? 어떤 종류의 보안이 필요합니까?
그러나 WCF는 엔터프라이즈 급 응용 프로그램에 적합한 기술입니다.
이미 언급했듯이, 악몽을 구성하고 예외를 숨길 수 있습니다. 추적을 사용하도록 설정하고 추적 로그 뷰어를 사용하여 일반적으로 문제를 해결할 수 있지만 WCF 서비스를 문제 해결하기 위해 문제를 해결할 수 있습니다. 특히 코드를 배포하고 코드가 실행되기 전에 문제가 발생하면 문제를 해결할 수 있습니다.
내 조직 내의 구성 요소 간 통신의 경우 내 서비스 및 프록시에 대해 [NetDataContract]
을 사용하여 종료되었습니다. (.NET 외부의 플랫폼과 통합 할 수 없으며 계약이 포함 된 어셈블리가 필요함) 성능이 우수하다는 것을 알았고이를 사용하여 전반적인 개발 시간을 단축했습니다. 우리에게는 올바른 해결책이었습니다.
NetDataContract 대신 DataContractSerializer를 사용하고 모든 [DataContract] 특성에 대한 어셈블리 및 WCF의 직렬화 클래스를 알려진 유형의 리플렉션에서 전달할 수 있습니다. 이것은 상속을 유지하고 [KnownType]의 모든 고통을 제거합니다. – Steve
저는 이전에 전통적인 asp.net 웹 서비스와 클라이언트/서버 통신을 처리하고 데이터 세트를 앞뒤로 통과시킨 회사에 최근 채용되었습니다.
코어를 다시 작성 했으므로 이제 Net.Tcp가 "연결된"클라이언트가되어 모든 것이 완료됩니다. 그것은 일주일에 한 번 "생산 중 발견"의 가치가 있었지만 그만한 가치가있었습니다.
게임의 후반부에서 알아야 할 문제점은 다음과 같습니다. 1) 기본 조절로 인해 11 번째 사용자가 차단되었습니다 (기본값은 10 개만 허용). 2) 기본값 "maxBufferSize"가 65k로 설정되었으므로 다운로드해야하는 첫 번째 비트 맵이 서버를 크래시했습니다. 3) 기타 기본 구성 (최대 동시 연결, 최대 동시 호출 등).
모두 가치가있었습니다 ... 앱은 자신의 인프라를 변경함으로써 훨씬 빨라졌으며 이제는 "연결된"사용자가 생겼습니다 ...서버는 클라이언트에 메시지를 보낼 수 있습니다.
다른 유용한 이점은 연결되어있는 사람이 100 %라는 것을 알고 있기 때문에 실제로 응용 프로그램 수준에서 라이센스 정책을 시행 할 수 있다는 것입니다. 전에 (그리고 내가 고용되기 전에) 우리 회사는 단순히 기록해야했고, 다음 달 청구서에 너무 많은 시간을 연결하는 고객을 추가로 확보해야했습니다.
+1 maxBufferSize 및 기타 기본값을 언급하기 위해 완벽하게 작동하는 서비스에서 처음으로 적중했을 때 디버깅하는 것이 끔찍 스럽습니다. –
이것은 매우 모호합니다. 그래서 많은 유용한 답변을 얻지 못할 것이라고 생각합니다. 좀 더 구체적인 것을 시도하십시오. –