0

저는 지난 하루 동안 ExecutionEngineException을 throw하는 웹 서비스에 어려움을 겪고 있습니다. 나는 Silverlight 클라이언트가 반환 형식으로 IEnumerable <> 또는 IList <>도 List <>을 좋아하지 않는다고 최종적으로 해결했습니다. MyObject [] 괜찮습니다. HttpDuplexBinding 웹 서비스 호출에서 ExecutionEngineException이 발생했습니다.

나는 샘플 용액에 재현 관리 :

서비스 설명 : 클라이언트 측에

[ServiceContract] 
    public interface IService 
    { 
     [OperationContract] 
     IEnumerable<Person> SomeStuff(); 
    } 

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
    public class Service : IService 
{ 
     public IEnumerable<Person> SomeStuff() 
     { 
      return new Person[] { new Person { Name = "some person", ID = 42 } }; 
     } 
} 

    [DataContract] 
    public class Person 
    { 
     [DataMember] 
     public string Name { get; set; } 
     [DataMember] 
     public int ID { get; set; } 
    } 

을, 단지 서비스 참조를 생성하고 서비스를 호출합니다. 서비스가 반환 된 후에 예외가 throw됩니다.

문제의 원인에 대한 아이디어는 인정 될 것입니다.

답변

0

공식 답변이 없지만 SL 3.0의 RTW 버전에서 자동 프록시 생성이 때때로 나를 막을 수 있으며 배열/목록/일반 콜렉션의 전달을 망칠 수 있습니다. 무슨 일이 일어나는 지. 서비스 레퍼런스를 마우스 오른쪽 단추로 클릭하고 "서비스 참조 구성"을 선택한 다음 "참조 된 어셈블리에서 재사용 유형"을 선택하고 어떤 유형/어셈블리가 있어야 할지를 묻습니다. 재사용. 결국 그것은 효과가있는 것처럼 보입니다.

작동하지 않는 경우 Visual Studio를 다시 시작하면 자동 프록시 생성이 해당 지점에서 자주 작동합니다.

희망 사항은 최소한 올바른 방향으로 안내하는 데 도움이됩니다.