Fehler beim generieren des XML-Dokuments. Die Art Job war nicht zu erwarten

Schreibe ich eine web-app mit MVC3 aber beim Versuch, ein Objekt übergeben an den controller und zeigen es scheint nicht zu erkennen, die Art oder so etwas.

Habe ich ein Job-Objekt und ein JobService Rückkehr eine Job wie diese:

public Job View(int jobId)
{
    Job job=_jobRepository.Jobs.Where(x => x.Id == jobId).FirstOrDefault();
    return job;
}

Innerhalb der WebService-ich nenne Ansicht wie diese:

[WebMethod]
public Job GetJob(GetJobRequest getJobRequest)
{
    var getJobResponse = new GetJobResponse();
    getJobResponse.Job = _jobService.View(getJobRequest.Id);
    return getJobResponse.Job;
}

Dann wird der Controller nennt dies:

public class JobsController : Controller
{
    public ActionResult Index()
    {
        var jobModel = new JobModel();

        using (var webServiceSoapClient = new WebServiceSoapClient())
        {
            var getJobRequest = new GetJobRequest();
            getJobRequest.Id = 26038;
            jobModel.Job = webServiceSoapClient.GetJob(getJobRequest);
        }
        return View(jobModel);
    }
}

Und es wirft diese Fehlermeldung:

System.Web.Services.- Protokolle.SoapException: Server konnte die Anforderung nicht verarbeiten. ---> System.InvalidOperationException: Es wurde ein Fehler beim erzeugen des XML-Dokuments. ---> System.InvalidOperationException: Der Typ System.Daten.Entität.DynamicProxies.Job_55765AEC3BD02AFD7E0527408ED5746e1054965a59b82a127b5a688c19c61d5b war nicht zu erwarten. Verwenden Sie das XmlInclude-oder SoapInclude-Attribut, um anzugeben, dass Typen, die nicht bekannt sind statisch.
bei Microsoft.Xml.Serialisierung.GeneratedAssembly.XmlSerializationWriter1.Write9_Job(String n, String ns, Job-o, Boolean isNullable, Boolean needType)
bei Microsoft.Xml.Serialisierung.GeneratedAssembly.XmlSerializationWriter1.Write18_GetJobResponse(Object[] p)
bei Microsoft.Xml.Serialisierung.GeneratedAssembly.ArrayOfObjectSerializer13.Serialisieren(Objekt objectToSerialize, XmlSerializationWriter Schriftsteller)
System.Xml.Serialisierung.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
--- Ende der inneren Ausnahme-stack-trace - - -
System.Xml.Serialisierung.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
System.Web.Services.- Protokolle.SoapServerProtocol.WriteReturns(Object[] returnValues, Stream Ausgabestrom)
System.Web.Services.- Protokolle.WebServiceHandler.WriteReturns(Object[] returnValues)
System.Web.Services.- Protokolle.WebServiceHandler.Invoke()
--- Ende der inneren Ausnahme-stack-trace - - -

Zuerst war ich vorbei an einem GetJobResponse um den service, aber ich habe versucht, es so einfach wie möglich zu bekommen, es funktioniert und ich kann immer noch nicht herausfinden. Ich habe gesehen, dass es andere Fragen, was auf die Verwendung von XmlInclude und Zeug, aber es funktioniert immer noch nicht.

Anwendung dieser:

public string SerializeObjectToXMLString(object theObject)
{
    //Exceptions are handled by the caller

    using (System.IO.MemoryStream oStream = new System.IO.MemoryStream())
    {
        System.Xml.Serialization.XmlSerializer oSerializer = new System.Xml.Serialization.XmlSerializer(theObject.GetType());

        oSerializer.Serialize(oStream, theObject);

        return Encoding.Default.GetString(oStream.ToArray());
    }
}

Den Auftrag zurückgegeben wird durch die Ansicht in einem test, übergibt es den test, ich denke das problem kommt von meinem webservice.

Bitte help meeee :'(

  • sieht aus wie Ihre version des Job-Objekt ist anders als die, die der web-service erwartet. müssen Referenzen aktualisieren?
  • habe versucht Sie zu aktualisieren, aber nicht beheben 🙁
InformationsquelleAutor minaMihaela | 2013-08-09
Schreibe einen Kommentar