none
Errors received in Content-Based Routing application when using SOAP send port... RRS feed

  • Question

  • Hello Everyone - I have a Content-Based Routing application (no orchestrations) that accepts flat files, runs the data through the appropriate map, and transmits the transformed data through a SOAP 1.1 send port.  I'm not using the WCF-based SOAP adapter - I'm using the older SOAP adapter.  I'm using BizTalk Server 2009.  The maps are configured on the appropriate send port.  I'm receiving the following error when BizTalk attempts to transmit the message through SOAP:

    A message sent to adapter "SOAP" on send port "VirtuaADT_A01_SOAPSendPort" with URI "http://amalga-devout:8080/ADT_Tracker/ADTTracker_Service_11_Test" is suspended.
     Error details: Failed to load "" type.
     Please verify the fully-qualified type name is valid.
     Details: "".
     The type must derive from System.Web.Services.Protocols.SoapHttpClientProtocol.
     The type must have the attribute System.Web.Services.WebServiceBindingAttribute.


    Here's what I've done so far - I'm hoping this is just a silly thing I forgot to configure:

    • Created my flat-file receive port.  This works fine.
    • Added the web reference successfully to my project - all necessary classes were successfully built and deployed.  The schemas corresponding to the web reference appear in the BizTalk Administration Console.
    • In my map, I selected the appropriate web reference schema for the document to be transformed to (i.e., right-hand side schema of the map).  To confirm, the map should transform to the web service's schema?
    • I configured a SOAP 1.1 send port by setting the send pipeline to be XMLTransmit, setting the Outbound Map to the appropriate map (ensuring that the transformed-to schema is from my web service), setting the Filter appropriately, entering the service's URL within the SOAP Transport Properties/General tab, not using a proxy or any security (my web service doesn't require security at this point), and setting Orchestration Web Port in the Web Service tab.

    I'm confused by the error indicating that:

     The type must derive from System.Web.Services.Protocols.SoapHttpClientProtocol.
     The type must have the attribute System.Web.Services.WebServiceBindingAttribute.


    Shouldn't the fact that I'm selecting the web service's target schema in my map indicate that the message is being derived properly?

    Also, since I'm not using orchestrations, should I be specifying the assembly name, type name, and method name in the SOAP Transport Properties/Web Service tab?  Do I specify my application's assembly name?  I tried doing that and couldn't.

    Supposedly, this is all possible as of BizTalk Server 2009, as detailed by Microsoft below:

    http://technet.microsoft.com/en-us/library/aa560545(BTS.10).aspx


    I followed the steps but am still stumped.

    Thanks in advance!

    - Anthony

    Tuesday, February 2, 2010 3:13 PM

Answers

All replies

  • It is most likely looks the message type conflicts.
    Also,
    Have you tested your map?
    What kind of filter you have set on send port? 
    Thanks. Mo
    Tuesday, February 2, 2010 6:10 PM
  • Thanks for the reply Mo.  Yes, I tested the map and it validates correctly.  I used the same map (referencing the schema that is not attributed to the web reference) and it worked too.  The filter is the identical one used on my flat-file send port which also works.

    • I'd presume that assigning one of the web service's schema to the righthand side of my map would allow BizTalk/SOAP adapter to attribute the transformed data to the SOAP port, thereby allowing the SOAP adapter to create the message appropriately when sending it?
    • Based on the presumption above, I don't know why BizTalk is indicating the error in my original post.

    - Anthony

    Tuesday, February 2, 2010 7:14 PM
  • The error really seems like it is looking for the proxy assembly for calling the web service and is not related to the map. SoapHttpClientProtocol was the old base class for a Soap web service proxy and the WebServiceBinding attribute was one of the web service attributes under .NET 2.0.
    You would need to specify the SOAP Transport properties\Web Service assembly name details. There is a ... box to browse to the assembly. Here is a post that describes some of this: http://abdulrafaysbiztalk.wordpress.com/2009/04/26/consuming-web-services-in-an-orchestration-using-dynamic-port-binding-and-without-web-reference/.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Wednesday, February 3, 2010 5:38 AM
    Moderator