Using adapter with .net 3.0 RC1

Topics: Developer Forum
Sep 22, 2006 at 7:54 AM
I am experiencing an issue with using the adapter with RC1 call wcf service in a request reponse fashion, I am not sure if it is related to the use of RC1 or if I am doing something wrong with my setup. Is anyone using the adapter with RC1?

I have installed the adapter as described and and then added a static send/receive port with Biztalk using the Endpoint wizard to set the URI and action and setting the Binding to be HTTP-Basic as the web service is using basic profilling and finally setting the Nstivq One way action to be false.

Do I need to set the Behaiour Configuration? I have left that as blank as there is nothing to select.

As an additional note I have also set the pipelines on the port to be the standard XMLTransmit and XMLReceive.

When I run it I get the following error:-

A message sent to adapter "WCF" on send port "TestWCFSend" with URI "wcf://http://rb-2k3-peepuat.hosting.bca-group.com/bcaexternalwebservices/Vehicle.svc/http://schemas.external.bca-group.com/2006/08/IVehicleManagement/IVehicleManagement/AddVehicle" is suspended.
Error details: An unexpected failure occurred while processing a message. The text associated with the exception is "Object reference not set to an instance of an object.".
MessageId: {A23BD772-7573-4E00-87DF-9DE9C084435D}
InstanceID: {E06044A4-3E76-49AB-9FD9-7A9F2D25613C}

For more information, see Help and Support Center at

If you need any further info then please ask.

Guy

Developer
Dec 12, 2006 at 11:12 AM
I get the same result. Did you find any solution?

I do not get configuration string as you, using the wizard. You have some extension "Vehicle.svc". I do not get that and not even the service's name... Mine is more like wcf://net.tcp://host:port/http://NamespaceOfMethod

I use version from June.

Kind Regards
Martin Bring
May 7, 2007 at 4:35 PM
Hi, I am battling with the ame issue - has anybody found out the cause of this.
I am running .net 3.0 RTM
May 8, 2007 at 12:20 PM
I am also getting a similar error with .Net 3.0 RTM. I tried to use this WCF Adapter from a BizTalk 2006 Orchestration to invoke a WCF Service exposed on wsHttpBinding. I am getting an error that the adapter failed to transmit message going to send port with an exception “Object reference not set to an instance of an object”. I tried to debug using the source code and found that the exception occurs in the line 81 of WcfTransmitterProperties.cs where the 'Uri' property is null. Analyzing further, the reason for 'null' value of 'Uri' property is because '_uri' is set as 'null' in line 58 of WcfAdapterProperties.cs file. The 'InboundTransportLocation' property of 'SystemMessageContext' of the 'msg.Context' (msg is of type IBaseMessage) is 'null'. So, the message received in the BizTalk server does not contain the 'InboundTrasportLocation' and I am not able to understand the reason for the same. I have followed the steps listed below to configure the WCF Adapter in the Port. The WCF Adapter works fine with the Demo application provided. Can anybody please help me to identify this issue? Thank you.

Steps done to configure WCF Adapter to invoke WCF Service from BizTalk Orchestration (This also can help as documentation to use WCF Adapter for the new users):

1. Create sample WCF Service and invoke it from another client to verify the service works. Note this WCF Service should have the 'Action' as part of each OperationContractAttribute. (Refer the demo application NewsSubscriberB\NewsChannelContract.cs)
2. Create a BizTalk project with an Orchestration that listens to a File Port for the input data and sends the results to a File Port for the result data.
3. Right-click the BizTalk project and select 'Add generated items' -> Add Adapter Metadata -> Select 'WCF' -> Provide 'Service url' -> Get all the generated schemas.
4. Add a map to Transform the input data schema of file to the generated schema for the input data contract of WCF Service and add a 'Transform' in orchestration to transform to the input data contract of WCF Service.
5. Similarly do the above step for transformation of Output result data from output data contract to the output data schema of file.
6. Add a Send to a 'Send-receive' port with a new Port type to communicate with WCF service and connect the Send and receive to the Send-receive port.
7. BindingConfiguration for the WCF Service has to be added to BTSNTSvc.exe.config. Go the sample client App.Config file (created in step 1) and copy the complete text between the 'bindings' tag and paste it in the System.Service tag in BTSNTSvc.exe.config. The 'binding name' for this binding is 'WCF_EndPoint'. (This step is similar to the 'MyWSRMBinding' BindingConfiguration used in the demo application)
8. Configure the Send port of WCF service in the Administration console to use Transport type 'WCF' and click on 'Configure' and click on 'Endpoint wizard' to provide the WCF Url and select the appropriate Action and click 'Ok'.
9. Now, 'Endpoint Uri', 'Endpoint Action', 'Endpoint Wizard' is filled up in the ‘WCF Transport properties’ screen. Select the Binding as 'HTTP-WS' and Binding configuration as 'WCF_Endpoint'. Select the 'NativeOneWay' as 'False'. (This is a Request-response port)
10. Drop the input file in the location and look in BizTalk Group overview page in Administration console and the Send port is in 'Retrying and idling ports' and the Event viewer has the warning message detailing the reason.