일부 서버에서 WCF가 작동하지 않습니다


1

예외가 발생합니다.

"개체 그래프에서 직렬화 또는 역 직렬화 할 수있는 최대 항목 수는 '65536'입니다."

서버 3 대 중 2 대 (준비 및 프로덕션)에 문제가있는 이유를 알 수 없습니다.

테스트 서버 [IIS7.5 w2k8r2]에서 작동하기 때문에 웹 사이트의 web.config를 배제 할 수 있다고 생각합니다.

machine.config와 웹 서버의 web.configs를 모아서 비교 한 결과 아무런 문제가 없습니다.

다른 곳에서 구성 설정이있을 수 있습니까?

편집하다:

이것은 구성 파일의 관련 부분입니다.

</system.webServer>
<system.serviceModel>
<behaviors>
  <endpointBehaviors>
    <behavior name="TheEndPointBehaviour">
      <dataContractSerializer maxItemsInObjectGraph="6553600" />
    </behavior>
  </endpointBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="TheEndPoint" maxReceivedMessageSize="6553600" />
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://ipaddress/folder/service.svc"
    binding="basicHttpBinding" bindingConfiguration="TheEndPoint"
    contract="Reference.IService" name="TheEndPoint" />
</client>

개발자는 6553600을 사용했지만 이것을 2147483647로 올렸으며 작동하지 않습니다.


1
이것은 일반적으로 web.config 설정입니다. 구성 (바인딩)의 관련 부분을 게시하십시오
MichelZ

답변:


1

테스트중인 작업이 세 서버 모두에서 정확히 동일합니까? 다른 데이터 세트로 작업하는 경우 모든 서버에서 해당 데이터 세트를 볼 수없는 이유를 설명 할 수 있습니다.

이것은 종종 클라이언트가 직렬화 / 역 직렬화를 충분히 수행 할 수 없기 때문에 발생합니다. 엔드 포인트 동작을 추가하여 (또는 프로젝트에서 사용하는 경우 사용자 지정 동작에서) 임계 값을 늘릴 수 있습니다.

  <endpointBehaviors>
    <behavior name="blah">
      <dataContractSerializer maxItemsInObjectGraph="2147483646"/>
    </behavior>
  </endpointBehaviors>

web.config와 클라이언트의 app.config에서이 작업을 수행해야 할 수도 있습니다.


예, 같은 컴퓨터의 동일한 서비스가 세 서버 모두에 사용되고 있습니다. 개발자가 테스트 서버에서 작동하는 maxItemsInObjectGraph = "6553600"을 사용했지만 스테이징에서이를 "2147483646"으로 바꾸었지만 작동하지 않습니다.
zeristor

@zeristor 같은 서비스가 아니라 해당 서비스 의 동일한 데이터 세트. 클라이언트 앱이란 무엇입니까? WCF 클라이언트 인 경우 엔드 포인트 동작도 설정되어 있습니까?
squillman

그들은 동일한 데이터 세트를 사용하여 동일한 서비스를 가리키는 동일한 웹 사이트의 동일한 버전입니다 (좋은 점 감사). 유일한 차이점은 서버와 사용중인 DB 연결입니다.
zeristor

1
죽은 말을 때리는 것처럼 들리지만 작업에서 동일한 데이터를 얻는 지 확인할 수 있습니까? 실패한 두 가지에 대한 더 많은 데이터를 다시 얻는 것처럼 느껴집니다.
squillman

좋은 지적입니다. 우리는 확실하지만 그 가정의 유효성을 검사 할 것입니다.
zeristor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.