2012-09-21 10 views
1

나는 desesperated, WCF 서비스 (공유 형식)에 대한 기존 서비스 참조를 업데이트하려고하고 있는데 그럴 수 없습니다. 나는 Google에서 찾은 모든 것을 tryied했습니다 (social.msdn, stackoverflow, ...)하지만 내 문제에 대한 해결책을 찾지 못했습니다.WCF 업데이트 서비스 참조 오류

나는의 ServiceContract를했습니다 나는 아래의 코드와 같은 새로운 작업을 추가

Attempting to download metadata from 'http://localhost:65499/Services/Acciones/ProcesoServiceDTO.svc' using WS-Metadata Exchange or DISCO. Error: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Referenced type 'mpm.seg.ServiceModel.DTO.DataContracts.Acciones.ProcesoDTO, mpm.seg.ServiceModel.DTO.DataContracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' with data contract name 'ProcesoDTO' in namespace 'http://schemas.datacontract.org/2004/07/mpm.seg.ServiceModel.DTO.DataContracts.Acciones' cannot be used since it does not match imported DataContract. Need to exclude this type from referenced types.XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IProcesoServiceDTO']

: 나는 그것이 follwing을 오류 나를 던져 서비스 참조를 업데이트하려고하면

[ServiceContract] 
public partial interface IServiceDTO : IGenericServiceDTO<EntityDTO>  
{ 
     // Some OperationContracts working like 
     [OperationContract] 
     EntityDTO[] Method(int field); 

     // NewMethod 
     [OperationContract] 
     OtherEntityDTO[] NewMethod(int field); 
} 

[DataContract] 
public class EntityDTO { 
    // Some properties working 
} 


[DataContract] 
public class OtherEntityDTO { 
    // Some properties working 
    [DataMember] 
    YetAnotherEntity NewProperty {get;set;} 
} 

우선, "... 가져온 DataContract와 일치하지 않기 때문에 사용할 수 없습니다."라는 문장을 정확히 이해하지 못합니다. svcutil이 참조 된 유형을 가져온 DataContract와 일치시키는 방법 클라이언트 프로젝트에서 참조 된 형식을 가진 프로젝트를 참조했습니다. 서버와 클라이언트가 같은 솔루션에 있지만 원인을 구분하고 정확하게 동일한 DLL을 참조하려고했습니다. 내가하려고 할 때

는 또한, 예를 들어, 다음과 같은 상황이 (이하 "EntityDTO에 OtherEntityDTO"의 쓰기 "NewProperty")를 작동하고, 나는 차이를 이해하지 않습니다

[ServiceContract] 
public partial interface IServiceDTO : IGenericServiceDTO<EntityDTO>  
{ 
     // Some OperationContracts working like 
     [OperationContract] 
     EntityDTO[] Method(int field); 

     // NewMethod 
     [OperationContract] 
     OtherEntityDTO[] NewMethod(int field); 
} 

[DataContract] 
public class EntityDTO { 
    // Some properties working 

    [DataMember] 
    YetAnotherEntity NewProperty {get;set;} 

} 


[DataContract] 
public class OtherEntityDTO { 
    // Some properties working 
} 

주세요, 도와 주시고 진심으로 감사드립니다.

답변

0

죄송합니다. 질문을 게시 한 후에 문제가 발견되어보고 된 버그 (http://blogs.msdn.com/b/distributedservices/archive/2010/02/04/wcf-client-issue-with-reuse-types-from-referenced-assemblies.aspx?wa=wsignin1.0)입니다. 다른 개발자가 부모 클래스에이 속성 (IsReference = true)을 추가했으며 알지 못했습니다. 이제이 버그를 해결해야하지만 또 다른 전투입니다. 때로는 때로는없는 일을 왜

어쨌든, 난 ...

감사를 이해하지 않습니다.

0

비슷한 오류가 발생했지만 문제가 달라졌습니다.

나는 읽기 전용 속성을 가지고 있었고 계속 오류가 발생했습니다. 일반 속성으로 변경하고 세트를 추가하면 아무 일도 없었습니다. 계약이 정상적으로 작동했습니다.

+0

예, 문제가 다릅니다. 속성을 DataMember로 사용하려면 WCF를 통해 직렬화/역 직렬화되도록 가져오고 설정해야합니다. 이것을보십시오 : [StackOverflow thread] (http://stackoverflow.com/questions/1873741/wcf-exposing-readonly-datamember-properties-without-set) – Marc