2014-07-11 1 views
0

Я использую клиент REST, который я уже использовал для публикации других сложных объектов в моей базе данных.Невозможно отправить сложный объект через Json для веб-API - Ошибка HTTP 500

Я не могу отправить слишком много кода, потому что это связано с работой, но вот то, что я пытаюсь отправить веб-API от моего отдыха клиента:

{"BinID":"PBN0012","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-07-11T17:51:49.670028+00:00","ModifiedByUID":"00000000-0000-0000-0000-000000000000","BatchBins":[],"BinsInUses":[]} 

То есть после того, как объект сериализуется JsonConvert.

Я использую HttpWebResponse (и получить HTTP 500 Внутренняя ошибка сервера -. И System.ArgumentException на Xamarin «Запрещенные символы в пути»

Даже когда я пытаюсь размещать непосредственно через SOAP UI я получаю это сообщение :

{ 
    "$id": "1", 
    "Message": "An error has occurred." 
} 

Это то, что я получаю, когда я типа «(IP-адрес ....)/Api/Бункеры/GetBins в браузере:

[{"$id":"1","BatchBins":[],"BinsInUses":[{"$id":"2","Bin":{"$ref":"1"},"BinID":"PBN0001","EntrySequence":1}],"BinID":"PBN0001","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"3","BatchBins":[],"BinsInUses":[{"$id":"4","Bin":{"$ref":"3"},"BinID":"PBN0002","EntrySequence":2}],"BinID":"PBN0002","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"5","BatchBins":[],"BinsInUses":[{"$id":"6","Bin":{"$ref":"5"},"BinID":"PBN0003","EntrySequence":3}],"BinID":"PBN0003","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"7","BatchBins":[],"BinsInUses":[{"$id":"8","Bin":{"$ref":"7"},"BinID":"PBN0004","EntrySequence":4}],"BinID":"PBN0004","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"9","BatchBins":[],"BinsInUses":[],"BinID":"PBN0005","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"10","BatchBins":[],"BinsInUses":[],"BinID":"PBN0006","BinType":"Dryer","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"11","BatchBins":[],"BinsInUses":[],"BinID":"PBN0007","BinType":"Dryer","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"12","BatchBins":[],"BinsInUses":[],"BinID":"PBN0008","BinType":"Dryer","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"13","BatchBins":[],"BinsInUses":[],"BinID":"PBN0009","BinType":"Dryer","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"14","BatchBins":[],"BinsInUses":[],"BinID":"PBN0010","BinType":"Dryer","IsDeleted":false,"ModifiedDateTime":"2014-06-02T00:00:00","ModifiedByUID":"b6c1b64f-874b-4180-949a-97c77cc4194c"},{"$id":"15","BatchBins":[],"BinsInUses":[],"BinID":"PBN0011","BinType":"Wash","IsDeleted":false,"ModifiedDateTime":"2014-07-03T15:34:11.67","ModifiedByUID":"9f05ab31-2521-4a7e-9258-b7092aae5058"}] 

класс Bin состоит из:

public partial class Bin 
{ 
    public Bin() 
    { 
     this.BatchBins = new HashSet<BatchBin>(); 
     this.BinsInUses = new HashSet<BinsInUse>(); 
    } 

    public string BinID { get; set; } 
    public string BinType { get; set; } 
    public bool IsDeleted { get; set; } 
    public System.DateTime ModifiedDateTime { get; set; } 
    public System.Guid ModifiedByUID { get; set; } 

    public virtual ICollection<BatchBin> BatchBins { get; set; } 
    public virtual ICollection<BinsInUse> BinsInUses { get; set; } 
} 

И таблица для «корзины» в базе данных имеет следующие столбцы:

BinID (PK, nvarchar(100),not null) 
BinType (nvarchar(5), not null) 
IsDeleted (bit, not null) 
ModifiedDateTime (datetime,not null) 
ModifiedByUID (uniqueidentifier, not null) 

Я знаю, что я использовал правильные типы для каждого из них с учетом других моих объектов прошли через очень хорошо. Любые предложения о том, как получить строку json для публикации?

+0

Также я попытался удалить «+00: 00» или «.670028 + 00: 00» с того времени, и я попытался переместить «BatchBins»: [], «BinsInUses»: [] "на фронт строки, но ничто из этого не имеет никакого значения. – NineToeNerd

+0

И я попытался добавить к «BinsInUses» и «BatchBins» перед публикацией, но он по-прежнему не работает (и делать что-то вроде того, что не является частью исходного объекта БД, перепутал меня при публикации другого типа объекта в этом база данных в любом случае) – NineToeNerd

ответ

0

Просто так все знают, что если они получат такую ​​ошибку и не могут найти решение, у вас может быть такая же проблема, как у меня.

Я скопировал и вложил методы в свой API, чтобы сэкономить время (потому что у многих методов/классов были похожие имена), и я закончил с двумя методами с тем же самым точным именем; Я забыл изменить имя метода. Только для справок в будущем.

Смежные вопросы