최근 WCF에서 많은 작업을 해오 고 있으며 특히 IIS (자체 호스팅 아님)에서 호스팅하고 있습니다.WCF/IIS 시간 제한에 다시 쓰기가 필요합니까?
나만인가, 아니면 누가 타임 아웃 값을 미세 조정하는 문제가 있습니까? 배트에서 바로 조정할 때 필요한 제한 시간을 언급하면서 시작하겠습니다.
어떤 식 으로든 전부 또는 또 다른 시간 제한과 관련된 다음과 같은 바인딩 엔드 포인트 값을 살펴 보자
- closeTimeout을 = "0시 1분 0초"
- openTimeout의 = "0시 1분 : 00 "
- receiveTimeout ="0시 10분 0초 "
- sendTimeout가 ="0시 1분 0초 "
- 가 MaxBufferSize는 ="999 "
- maxBufferPoolSize ="524288 "
- maxReceivedMessageSize = "999"
- readerQuotas MAXDEPTH = "32"
- readerQuotas maxStringContentLength = "8192"
- readerQuotas maxArrayLength = "16384"
- readerQuotas maxBytesPerRead = "4096"
- readerQuotas maxNameTableCharCount = "16384"
이들은 클라이언트 측 끝점 구성 값이며 아직 시작하지 않았습니다. 이제 II에서 서비스가 실행됩니다. S에서는 클라이언트 측과 동일한 수준의 복잡성을 제공하는 서버 측 바인딩을 설정해야합니다.
일단 완료되면 WCF 서비스에 대한 긴 호출 중에 IIS를 구성하는 것이 필수적입니다. 그러면 메인 스레드가 중단되게됩니다.
IIS는 Keep-Alive를 사용하지 않도록 설정해야하며, App Pool에도 많은 시간 제한 값인 App Pool이 있습니다. 이는 세부적인 주제입니다. 이 외에도 특별히 세밀하게 조정해야하는 또 다른 7 개의 시간 초과 값이 있습니다. 그렇지 않으면 복잡한 WCF 호출이 실패 할 것으로 예상됩니다.
실례지만 다른 사람이 쥐의 냄새를 맡고 있습니까?
내 이해는 신뢰 문제로 인해 (대부분의) 이러한 시간 초과 값이 존재한다는 것입니다. 신뢰로 말하자면, "서비스는 합리적인 시간 내에해야 할 일을 수행한다고 믿지 않습니다." SOA의 신뢰성있는 통신의 모든 측면은 앞에서 불신하고 있기 때문에 어느 정도의 관리 효율성을 보장하기 위해 광범위한 캐치넷 배열 (시간 초과 값)이 필요합니다. 적시에 응답하도록 시스템을 신뢰할 수 있다면 왜 시간 초과 값을 설정해야합니까?
내가 가진 모든 문제는 솔직히 말하면, 내 응용 프로그램에있는 5 가지 시스템이 일반적으로 신뢰할 수 있으며 대개 적시에 응답을하는 경우 무엇입니까? OOB, WCF/IIS 호스팅이 실패하기 때문에이 경계를 정의하는 긴 과정을 계속 진행해야한다는 점에 저는 좌절감을 느낍니다.
웹 캐스트와 마케팅 프레젠테이션 중에 WCF 기술이 위선이라는 사실을 알았습니다. WCF는 구현에서 더 나은 추상화를 허용하여 개발자가보다 쉽게 작성하고 배포 할 수 있도록하고 엔드 포인트를 "간단하게"정의 할 수 있도록 항상 언급됩니다. 비즈니스 논리에 집중할 수 있으며 밑줄 친 아키텍처에 덜 집중할 수 있습니다. 나는 실제로 진실에서 더 멀어 질 수는 없다는 것을 발견했다. WCF를 사용하면 서비스 운영 방식에 대한 세부 사항을 깊이 숙지해야하며 대개 ASMX 서비스와 달리 손쉬운 튜닝이 필요하며 일부 IIS 미세 조정 만 필요합니다.
제가 생각하기에 문제는 다음과 같습니다. 그것은 단지 나입니까? 아니면 여러분 중 누구도 동일한 좌절감과 관찰을 공유합니까? 모든 의견 환영합니다!
당신은 질문을 적어 놓은 그 한 사람에게 분명히 MS는 나쁜 생각이라고 생각하지 않았다. 그래서 왜 v4에 고정 된 나의 좌절감을 느꼈는가? –
IIS는 항상 나를 위해 타임 아웃을 호스팅한다. 나는 모든 서비스를 자기 호스팅으로 옮기는 것을 진지하게 생각하고있다 ... –