Я получаю то замечательно неоднозначное сообщение об ошибке при использовании одного из моих webmethods на моем веб-сервисе WCF. Поскольку то сообщение об ошибке не дает объяснения, вообще позволяют мне отправлять свою теорию.
Я полагаю, что это может иметь некоторое отношение к типу возврата, который я использую
У меня есть Типы DLL, на который ссылаются и в веб-сервисе и в клиенте. В этом DLL базовый класс ExceptionMessages. Существует ребенок этого класса под названием DrawingExcepions.
Вот некоторый код:
public class ExceptionMessages
{
public object[] ReturnValue { get; set; }
}
public class DrawingExceptions : ExceptionMessages
{
private List<DrawingException> des = new List<DrawingException>();
}
public class DrawingException
{
public Exception ExceptionMsg { get; set; }
public List<object> Errors { get; set; }
}
Код использования:
[OperationContract]
ExceptionMessages createNewBom(Bom bom, DrawingFiles dfs);
public ExceptionMessages createNewBOM(Bom bom, DrawingFiles dfs)
{
return insertAssembly(bom, dfs);
}
public DrawingExceptions insertAssembly(Bom bom, DrawingFiles dfs)
{
DrawingExceptions des = new DrawingExceptions();
foreach (DrawingFile d in dfs.drawingFiles)
{
DrawingException temp = insertNewDrawing(bom, d);
if (temp != null)
des.addDrawingException(temp);
if (d.Child != null)
des.addDrawingException(insertAssembly(bom, d.Child));
}
return des;
}
Возвраты к:
ExceptionMessages ems = client.createNewBom(bom, currentDFS);
if (ems is DrawingExceptions) { }
В основном типом возврата от webmethod является ExceptionMessages однако, я обычно передавал бы дочерний класс обратно вместо этого.
Моя единственная идея состоит в том, что это - ребенок, это вызывает ошибку, но насколько я читал, это не должно иметь никакого эффекта. Кто-либо получил какие-либо идеи, что могло идти не так, как надо здесь?
Если еще информация требуется, просто спросите :)
Спасибо.
Да, это отличное сообщение :)
Я часто находил полезным включить трассировку, как описано в этой статье . Взгляните на раздел «Рекомендуемые настройки для развертывания или отладки».