Ich bin völlig grün und es macht mich verrückt - es funktioniert für einige Datensätze, aber nicht für andere.XML-Fehler: Wert war entweder zu groß oder zu klein für ein Byte ohne Vorzeichen
EDIT: Es sieht aus wie es mit der Anzahl der Datensätze zusammen ist - irgendwie, wenn die Anzahl der Datensätze eine bestimmte Menge erreicht - vielleicht so etwas wie 250 - das ist, wenn es das XML abstürzt. Irgendwie scheint der automatisch inkrementierende ID-Primärschlüssel involviert zu sein, weil ich sehen kann, dass wenn ich sogar 3 Datensätze hinzufüge, wenn die ID-Spalte in die 400er gegangen ist, aber alle Datensätze gelöscht werden, immer noch denselben Fehler erzeugt, aber wenn ich die ID zurücksetze auf Null - dieselben 3 Datensätze können hinzugefügt und im XML-Body korrekt formatiert werden.
Mapping-Typen: Int32 -> Byte System.Int32 -> System.Byte Zielpfad: FixtureDto.ExchangeType.ExchangeType.Id.Id Quellwert: 268
Wert war zu groß oder zu klein für eine nicht signierte Byte.
Der Typ 'ObjectContent`1 konnte den Antworttext für den Inhaltstyp' application/xml; charset = utf-8 '.
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace/>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Mapping types: Int32 -> Byte System.Int32 -> System.Byte Destination path: FixtureDto.ExchangeType.ExchangeType.Id.Id Source value: 268
</ExceptionMessage>
<ExceptionType>AutoMapper.AutoMapperMappingException</ExceptionType>
<StackTrace>
at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext() at WriteArrayOfFixtureDtoToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , CollectionDataContract) at System.Runtime.Serialization.CollectionDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAndVerifyType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, Boolean verifyKnownType, RuntimeTypeHandle declaredTypeHandle, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiTypeAtTopLevel(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle originalDeclaredTypeHandle, Type graphType) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.WriteObject(XmlWriter writer, Object graph) at System.Net.Http.Formatting.XmlMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content) at System.Net.Http.Formatting.XmlMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()
</StackTrace>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Value was either too large or too small for an unsigned byte.
</ExceptionMessage>
<ExceptionType>System.OverflowException</ExceptionType>
<StackTrace>
at System.Convert.ToByte(Int32 value) at System.Int32.System.IConvertible.ToByte(IFormatProvider provider) at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) at System.ComponentModel.BaseNumberConverter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType) at AutoMapper.Mappers.TypeConverterMapper.<>c__DisplayClass1_0.<GetConverter>b__0() at AutoMapper.Mappers.TypeConverterMapper.Map(ResolutionContext context, IMappingEngineRunner mapper) at AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context)
</StackTrace>
</InnerException>
</InnerException>
</Error>
Ich denke, ich habe es gelöst. Hatte Int für ID-Feld aber hatte es als Byte in Dto gemappt Feld. – user6063812
OK good.hope entweder können Sie es als "Antwort" oder "löschen" diesen Beitrag. – Sampath
Während ich hoffnungsvoll bleibe, dass dies tatsächlich das Problem ein für allemal gelöst hat - dies ist das dritte Mal, dass ich eine Lösung für dieses Problem in der einen oder anderen Form gepostet habe, so dass Sie mir vergeben werden, wenn ich ein wenig nehme während vorher rushing, um Erfolg zu schließen, bevor es richtig über eine befriedigende Zeitspanne – user6063812