우리는 .NET 4, WPF, WCF, EF 4, SQL 2008 응용 프로그램을 가지고 있습니다. 우리의 EF 모델 중 하나는 매우 관계 성이 있으며, 필자가 기술 할 수있는 경우에는 아마도 사이클을 포함하고있을 것입니다. 이 STE EF 모델의 모든 갑작스런 데이터가 WPF 클라이언트에 나타나지 않는 현장의 사례 문제를 해결하도록 요청 받았습니다. 더 자세히 살펴보면 STE EF 객체 그래프를 검색 (직렬화)하려고 할 때 IIS W3WP 프로세스가 충돌한다는 것을 알았습니다. 디버그 진단을 사용하여 충돌을 캡처했습니다.StackOverflowException STE EF 개체 그래프 serialize
생성 된 오류 보고서를 살펴보면 스택 오버플로 예외 (적절한 방법)라는 것을 발견했습니다. 충돌 보고서의 스택 트레이스는 다소 크지 만 스택의 상단과 같은 :
System.Xml.XmlBaseWriter.StartElement(System.String ByRef, System.String, System.String, System.Xml.XmlDictionaryString)
System.Xml.XmlBaseWriter.WriteStartElement(System.String, System.Xml.XmlDictionaryString, System.Xml.XmlDictionaryString)
System.Runtime.Serialization.XmlWriterDelegator.WriteStartElement(System.String, System.Xml.XmlDictionaryString, System.Xml.XmlDictionaryString)
DynamicClass.WriteXXXDataToXml(System.Runtime.Serialization.XmlWriterDelegator, System.Object, System.Runtime.Serialization.XmlObjectSerializerWriteContext, System.Runtime.Serialization.ClassDataContract)
System.Runtime.Serialization.ClassDataContract.WriteXmlValue(System.Runtime.Serialization.XmlWriterDelegator, System.Object, System.Runtime.Serialization.XmlObjectSerializerWriteContext)
System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(System.Runtime.Serialization.DataContract, System.Runtime.Serialization.XmlWriterDelegator, System.Object, System.RuntimeTypeHandle)
System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator, System.Object, Boolean, Boolean, Int32, System.RuntimeTypeHandle)
System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference(System.Runtime.Serialization.XmlWriterDelegator, System.Object, Boolean, Boolean, Int32, System.RuntimeTypeHandle)
무엇 매우 이상한 만드는 것은 WCF 서비스 Visual Studio에서 호스팅 할 때 내가 dev에 환경에서 실행한다는 것입니다 , 직렬화 완벽하게 작동하고 클라이언트에서 데이터를 가져옵니다.
IIS 설정으로 해결할 수 있습니까? Visual Studio의 개발자 IIS에서는 작동하지만 프로덕션 IIS에서는 작동하지 않는 이유는 무엇입니까?
이 문제의 원인 또는 왜 시리얼 라이저가 barfing인지 알 수 없습니까?
STE EF4가 적용된 다른 WCF 직렬화 방법을 사용해 볼까요?
모든 의견을 환영합니다.
감사합니다.
굉장! 의견을 보내 주셔서 감사합니다. 나는 그 라인을 따라 뭔가를 보장합니다. IIS에서 스택 크기를 업데이트하는 방법에 대한 아이디어가 있습니까? 이 기사에서는 editbin.exe를 사용하여 http://blogs.msdn.com/b/tom/archive/2008/03/31/stack-sizes-in-iis-affects-asp-net.aspx에서 수행하는 방법에 대해 설명합니다. 그러나 우리는 생산 환경에서이 exe를 가지고 있지 않습니다. 내 컴퓨터에서 w3wp.exe 응용 프로그램을 업데이트 할 수 있지만 TrustedInstaller 권한이 없으면 고객 컴퓨터에서 해당 파일을 바꿀 수는 없습니다. 어떤 아이디어? –