Estoy recibiendo ese maravilloso mensaje de error ambiguo cuando uso uno de mis métodos web en mi servicio web WCF. Como ese mensaje de error no proporciona ninguna explicación en absoluto, me permite publicar mi teoría.WCF- "La conexión subyacente se cerró: la conexión se cerró inesperadamente"
Creo que puede tener algo que ver con el tipo de retorno que estoy usando
Tengo una DLL Tipos que se refrenced tanto en el servicio web y el cliente. En esta DLL es la clase base ExceptionMessages. Hay un niño de esta clase llamado DrawingExcepions.
Aquí hay un código:
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; }
}
El código usando:
[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;
}
Vuelve a:
ExceptionMessages ems = client.createNewBom(bom, currentDFS);
if (ems is DrawingExceptions) { }
Básicamente, el tipo de retorno de la WebMethod es ExceptionMessages obstante lo haría normalmente estar enviando la clase de niño de nuevo en su lugar.
Mi única idea es que es el niño el que causa el error, pero hasta donde he leído, esto no debería tener ningún efecto. ¿Alguien tiene alguna idea de lo que podría estar yendo mal aquí?
Si se requiere más información, pregunte :)
Gracias.
Esta fue la única respuesta más útil que he leído en 200 reputación. – Qqbt