Known issues with the WCF LOB Adapter SDK

This topic describes known issues associated with the WCF LOB Adapter SDK. It also provides resolutions for some of these issues.

Unable to Change SDK Features using Add or Remove Programs

Problem: Using Add or Remove Programs in Control Panel fails to change features for the WCF LOB Adapter SDK on a computer running Windows Vista.

Resolution: Instead of using Add or Remove Programs to modify your installation, rerun the Setup.exe program.

Base Runtime

Applications Using Transactions in Asynchronous Proxy Must Explicitly Call Proxy.Open

Problem: Applications that use transactions with an adapter in an asynchronous proxy must explicitly call proxy.Open for the transactions to flow.

Resolution: This can be done once the proxy is generated by the Add Adapter Service Reference Plug-in in the client program as shown:

EchoAdapterClient echoAdapterProxy = new EchoAdapterClient("mEchoConfiguration");  
echoAdapterProxy.Open();  
...  

IDuplexChannel Shape Not Supported

Problem: The IDuplexChannel channel shape is not supported in this release.

Resolution: Use the WCF Channel Model to create a WCF custom binding that supports duplex channels.

Request Schema Generated With or Without In or Out Parameters

Problem: In the ExportInputXmlSchema method of the class OperationMetadata, the request schema is always generated, even though it may not contain any in or out parameters.

Providing Multiple Operation Namespaces

Problem: If the adapter developer provides multiple operation namespaces for one operation group, the WCF LOB Adapter SDK generates an invalid WSDL. The generated input and output message part for each operation will not be linked to the right schema reference.

Resolution: Ensure that each OperationMetadata.OperationGroup is mapped to a single OperationMetadata.OperationNamespace.

Overloaded Operations Not Supported

Problem: In this release, the Dynamic Contract Generator (WSDL Builder) component of the SDK does not support overloaded operations, that is, operations with the same name but different signature.

Fault Contract Not Supported

Problem: In this release, the Dynamic Contract Generator (WSDL Builder) component of the SDK does not support fault contract metadata.

Failure When Receiving Messages

Problem: When receiving, there is a possibility of the adapter failing when processing certain messages if the Receive Timeout binding property is set to a small value. The error returned will be specific to your adapter.

Workaround: Set the Receive Timeout binding property to a large value, for instance 23:59:59, which is the maximum.

Adapter Stalls During Message Processing

Problem: If there are a large number of requests to the adapter, processing of the work items may appear to stall.

When opening a new connection, the adapter queues a work item which will be processed by the .NET threadpool. Once a connection is opened, further work items are queued to process each message. If the threadpool has been exhausted, a deadlock may occur where requests to open new connections are blocking requests to process messages.

Resolution: Eventually the requests will time out and processing will continue, however the recommended resolution is to either decrease the number of messages to be processed or increase the number of threads in the threadpool.

To increase the number of threads, modify the value of ProcessModelSection.MaxWorkerThreads property.

Design-Time Proxy and Schema Generation Tools

Limitations with Select Contract Type

Problem: The “Select contract type” filtering is applied to the category tree and the available operation list. If the adapter consumer selects a category node containing both inbound and outbound operations, all of them will be part of the WSDL and the generated proxy, regardless of the “Select contract type” filtering.

Resolution: Select individual operations instead of selecting the entire category.

Error with Add Adapter Service Reference Visual Studio Plug-In

Problem: In a BizTalk project in Visual Studio, if a proxy has already been generated by using the Add Adapter Service Reference Plug-in, generating another proxy from the same adapter will generate this error: "The namespace ‘<global namespace>’ already contains a definition for ‘{contract name}’ when compiling the project."

This release does not allow editing of the proxy.

Resolution: Remove the extraneous proxy files in the BizTalk project. If additional operations need to be included in the generated proxy, delete the proxy file and use the Add Adapter Service Reference Plug-in to search or browse metadata, and regenerate the proxy.

Error with Consume Adapter Service BizTalk Project Add-In

Problem: As in the previous issue, in a BizTalk project in Visual Studio, if common types exist in the schemas generated from the Consume Adapter Service BizTalk Project Add-in, the BizTalk project fails to compile.

Resolution: Remove the extraneous XML Schema files in the BizTalk project, use the Consume Adapter Service reference to search or browse required metadata, and regenerate the new XML Schema files.

Error With RootNode TypeName in BizTalk Projects

Problem: In a BizTalk project in Visual Studio, if the schemas generated from the Consume Adapter Service BizTalk Project Add-in contain invalid characters or reserved words for the RootNode TypeName property, the following error will occur at compile time: “Node <node reference> - Specify a valid .NET type name for this root node. The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).

Resolution: Select the root node referenced in the error and, in Properties, remove any illegal characters or reserved words from the RootNode TypeName property.

Metadata Generation Tool Limitations

Problem: If the adapter developer provides an XML Schema structure in an OperationMetadata and/or TypeMetadata derived class, and the XML Schema contains constructs that are ignored or forbidden by DataContractSerializer, the metadata generation tool falls back to using the XmlSerializer for serialization.

Resolution: Either remove the forbidden constructs in the schema, or use the WCF LOB Adapter SDK Metadata Object Model to generate the XML Schema definitions that comply with DataContractSerializer.

Binding Name Property Does Not Take Effect

Problem: Changing the binding name property on the Binding Properties General tab of the Add Adapter Service Reference dialog box will not take effect.

Resolution: Use the AdapterBinding derived class to change the name as follows:

[Browsable(false)]  
public new virtual string Name  
{  
     set  
     {  
          base.Name = value;  
     }  
     get  
     {  
          return base.Name;  
     }  
}  

Timeout when Retrieving Metadata

Problem: If the adapter contains many operations, you may encounter a timeout when retrieving metadata using tools such as the Add Adapter Service Reference Plug-in, WCF Adapter Service Development Wizard, or Consume Adapter Service Add-in if you attempt to retrieve many operations at once.

Resolution: Reduce the number of operations selected.

Avoid Generating Schemas which Reference an External Import

Problem: You should avoid generating schemas that contain one or more references to external imports. If this is done, the external links will not be followed.

Setup

Setup Halts While Checking Disk Space

Problem: When installing WCF LOB Adapter SDK, you may receive a dialog box stating that setup is checking for available disk space and setup will not continue.

Resolution: When this problem occurs, you can work around this issue by performing a silent install of WCF LOB Adapter SDK at a command prompt. For example:

Msiexec.exe /package AdapterFramework.msi /qr  

BizTalk Server Developer Tools Required

Problem: When the target system has Visual Studio and Microsoft BizTalk Server without developer tools, the WCF LOB Adapter SDK setup will fail. This is because it requires BizTalk Server developer tools to be present on the computer in order to install the Consume Adapter Service Add-in.

Resolution: Be sure the target computer has BizTalk Server installed with developer tools before installing the WCF LOB Adapter SDK.

Corrupt BizTalk Server Installation Causes SDK to Fail

Problem: A corrupt installation of BizTalk Server may cause the SDK installation to fail with the following error: "DirectoryNotFound exception."

Resolution: Uninstall and reinstall BizTalk Server.

See Also

Getting Started with BizTalk Server