MSDN에 따르면 WCF 서비스의 MaxPendingAccepts가 0으로 설정된 경우 WCF가 값을 구성합니다.WCF MaxPendingAccepts : 기본값 0
이 무엇을 의미합니까? 동적으로 변경 되었습니까? 그 뒤에있는 알고리즘은 무엇입니까?
MSDN에 따르면 WCF 서비스의 MaxPendingAccepts가 0으로 설정된 경우 WCF가 값을 구성합니다.WCF MaxPendingAccepts : 기본값 0
이 무엇을 의미합니까? 동적으로 변경 되었습니까? 그 뒤에있는 알고리즘은 무엇입니까?
System.ServiceModel.Channels.HttpTransportBindingElement
의 소스 코드를 살펴 보았습니다. HttpTransportsDefault
을 살펴보면
this.maxPendingAccepts = HttpTransportDefaults.DefaultMaxPendingAccepts;
다음 코드를 보여줍니다 : 클래스의 기본 생성자는 다음 코드 줄을 가지고 그래서
// We use 0 as the default value of the MaxPendingAccepts property on HttpTransportBindingElement. In 4.5 we always
// use 10 under the hood if the default value is picked. In future releases, we could adjust the underlying default
// value when we have the dynamic expending pattern of BeginGetContext call implemented and the heap fragmentation issue
// from NCL layer solved.
const int PendingAcceptsConstant = 10;
internal const int DefaultMaxPendingAccepts = 0;
internal const int MaxPendingAcceptsUpperLimit = 100000;
internal static int GetEffectiveMaxPendingAccepts(int maxPendingAccepts)
{
return maxPendingAccepts == HttpTransportDefaults.DefaultMaxPendingAccepts ?
PendingAcceptsConstant :
maxPendingAccepts;
}
그것을 보인다 같은 당신을 0 (기본값)을 사용하는 경우 실제로 10 점을 얻게되며 상한선은 100,000입니다.
그래서 본질적으로 당신이 값을 0으로 설정 한 경우 (또는 심지어는 디폴트로 0이 원인이되는, 모두를 설정하지 않은) 실제 값이 10
문서 상태 "기본 값이됩니다 MaxPendingAccepts의 값은 0입니다. 기본값은 바로 그 의미입니다. 값을 제공하지 않으면 프레임 워크가 값을 설정합니다. 이 경우 0입니다. 0으로 설정하면 0이됩니다. – Tim
아니요, 설명서 상태 : "MaxPendingAccepts의 기본값은 0입니다. 즉, WCF가 값을 구성합니다." 나에게 소리가 나지 않으므로 설정하지 않거나 0으로 설정하면 WCF에서 좋은 값을 선택합니다. – DanielG
나는 그것이 더 잘 말했을 것이라는 데 동의하지만, 나는 또한 문장의 적절한 해석은 당신이 그것을 설정하지 않으면 프레임 워크가 선택한 값이 0 일 것이라고 믿는다. – Tim