2012-03-12 2 views
0

내 WCF 서비스가 XML 응답을 deserialize하지 못했습니다. 'String이 유효한 DateTime으로 인식되지 않았습니다.'라는 오류 메시지가 나타납니다. 내가 스택 추적에서 볼DateTime.ParseExact를 호출 할 때 WCF가 사용하는 DateTime 형식을 어떻게 결정합니까?

코드는 내가 WCF 사용되는 날짜 시간 형식을 파악하려면 어떻게

System.DateTime.ParseExact(String s, String[] formats, IFormatProvider provider, DateTimeStyles style) +6364410 
    System.Xml.Serialization.XmlCustomFormatter.ToDate(String value) +58 
    Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderINgiReportingMgmnt.Read50_TransactionItem_Type(Boolean isNullable, Boolean checkType) +629 
    Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderINgiReportingMgmnt.Read105_transactionDetailRs() +1261 
    Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer54.Deserialize(XmlSerializationReader reader) +43 
    System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +579 

에 실패? 그리고 형식을 어떻게 변경합니까? 날짜를 가져 오는 형식을 제어 할 수 없습니다.

추신 : XML의 날짜는 "2010-01-03T11 : 59 : 59"입니다. 이것은 일반적인 DateTime.Parse를 사용하여 벌금을 deserialize합니다.

+0

'DateTime.ParseExact'는 입력 문자열의 형식을 이미 알고 있고'DateTime.Parse'를 고수 할 때 사용하기위한 것입니다. – rfmodulator

답변

0

정확한 형식은 중요하지 않습니다. 문제는 wsdl (xsd가 구체적으로) 값이 xsd : date임을 지정했습니다. 그러나 문자열의 일부로 값이 시간 이었기 때문에 디시리얼라이저는 예외를 발생 시켰습니다.

잘못된 데이터로 인해 문제가 발생했습니다. XSD가 변경 될 것을 요청했습니다.

관련 문제