Solved

The type '' was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically

Posted on 2014-11-17
3
1,640 Views
Last Modified: 2016-02-16
Hi,

When my Soap Web Service is called, it does everything what it should but generates the following soap error message:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <soap:Fault>
         <soap:Code>
            <soap:Value>soap:Receiver</soap:Value>
         </soap:Code>
         <soap:Reason>
            <soap:Text xml:lang="en">System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type BBTSerenaIntegration.ZMFWebservice_PackageLifeCycleServices.response was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write4_Type(String n, String ns, Type o, Boolean isNullable, Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write5_Header(String n, String ns, Header o, Boolean isNullable, Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write7_Output(String n, String ns, Output o, Boolean isNullable, Boolean needType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write27_ZMF_FreezePackageResponse(Object[] p)
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer25.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   at System.Web.Services.Protocols.SoapServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
   at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()
   --- End of inner exception stack trace ---</soap:Text>
         </soap:Reason>
         <soap:Detail/>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

I have tried to add the includes as suggested in the error message but both entries didn't solve the issue:
[XmlInclude(typeof(ZMFWebservice_PackageLifeCycleServices.response))]
[SoapInclude(typeof(ZMFWebservice_PackageLifeCycleServices.response))]

In the attachments you can find the Soap Web Service (BBTSerenaIntegration.asmx.cs) and the Operations class (ZMFOperation.cs) which is being called by the Soap Web Service.
ZMFWebservice_PackageLifeCycleServices is a reference to a Soap Web Service.

Thanks in advance for all the assistance.

Regards,

Tomi
BBTSerenaIntegration.asmx.cs
ZMFOperations.cs
soap-error.txt
0
Comment
Question by:tcorigli
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 4

Accepted Solution

by:
ItWorked earned 500 total points
ID: 40449501
I guess you have done wrong!

    [SoapInclude(typeof(ZMFWebservice_PackageLifeCycleServices.response))]
    public Output freezePackage(String package)

Open in new window


Attribute [SoapInclude] is not required for internal class operation.Check here.

What I suggest instead,
Place a break point at return statement at below line of code.
    ZMFOperations zmfOperations = new ZMFOperations();
    Output output = zmfOperations.freezePackage(package);
    return output;

Open in new window


Check what's
Type

Open in new window

of "output" object (you can use object.GetType() to identify that) and add below line of code in BBTSerenaIntegration.asmx.cs
    [SoapInclude(typeof(TYPE_THAT_YOU_RECEIVED_WHILE_DEBUGING))]
    public Output ZMF_FreezePackage(String package)

Open in new window


This shall work. Let me know if issue still persist.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
The purpose of this video is to demonstrate how to set up the WordPress backend so that each page automatically generates a Mailchimp signup form in the sidebar. This will be demonstrated using a Windows 8 PC. Tools Used are Photoshop, Awesome…
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…

617 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question