Archive for the ‘BizTalk Server’ Category.

A few tips when using WCF with BizTalk Server 2006 R2

As I was putting together the demonstration for the talk I’m giving tomorrow on BizTalk Server R2 and the WCF Adapters I had to do a few things to get some basic examples working, as this was a brand new virtual environment.  I thought I’d document some of the actions I had to take.

1. Registering the “WCF-BasicHttp” adapter.

After creating and deploying an orchestration for use with the “WCF-BasicHttp” adapter, I received the following error:

The Messaging Engine failed to register the adapter for “WCF-BasicHttp” for the receive location “/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc”. Please verify that the receive location exists, and that the isolated adapter runs under an account that has access to the BizTalk databases.

I had to take two steps to resolve the problem.  First, create a new application pool and set the identity to the service account used by the isolated host instance.  Second, give the service account used by the isolated host instance read/write access to the C:WindowsTemp directory.

2. Can’t find the “SvcUtil.exe” console application.

Turns out that I had forgotten to install the Windows SDK and .NET Framework 3.0 Runtime Components.  See my previous post on how to setup a BizTalk Server 2006 R2 development environment for more information.

3. “SvcUtil.exe” failed when generating the service metadata.

When I ran the command “C:Program FilesMicrosoft SDKsWindowsv6.0BinSvcUtil.exe”
http://localhost/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc?wsdl I ended up getting the following error:

Error: Cannot obtain Metadata from http://localhost/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc?wsdl

If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address.  For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.

WS-Metadata Exchange Error
    URI: http://localhost/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc?wsdl
    Metadata contains a reference that cannot be resolved: ‘http://localhost/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc?wsdl’.
    Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc?wsdl .  The client and service bindings may be mismatched.
    The remote server returned an error: (415) Cannot process the message because the content type ‘application/soap+xml; charset=utf-8′ was not the expected type ‘text/xml; charset=utf-8′..

HTTP GET Error
    URI: http://localhost/SampleWCFDemo/SampleWCFDemo_Process_ProcessPort.svc?wsdl

Additionally, when I loaded the WSDL in Internet Explorer, I got the message:

Metadata publishing for this service is currently disabled.

Turns out that I had to change the service behavior to allow the metadata to be published.  You can do this by modifying the Web.Config file of the service so that “httpHelpPageEnabled” is set to true:

<behavior name=”ServiceBehaviorConfiguration”>
    <serviceMetadata httpGetEnabled=”true” httpsGetEnabled=”false” />
</behavior>

Changing the value from “false” to “true” resolves the problem.

Those were the three issues that came up tonight.  I’m sure there will be more, and I’ll post the resolutions when I can.

I hope this helps!

Setting up a BizTalk Server 2006 R2 (beta 2) development environment

In preparation for the talk I am giving tomorrow on BizTalk Server R2 and the WCF Adapters, I thought I would post some notes on how to setup and configure a BizTalk Server 2006 R2 development environment.
The installation is really quite straightforward.  Start with a relatively clean machine (I suggest you use a virtual machine, as these are all beta bits).  My (virtual) machine had the following installed before I started the R2 installation:

  • Windows Server 2003 R2 Standard Edition with Service Pack 2
  • IIS 6.0
  • Microsoft .NET 1.0, 1.1, 2.0, 3.0
  • Microsoft Visual Studio 2005 Team Developer Edition with Service Pack SP1
  • SQL Server 2005 with Service Pack SP2

Additionally, you need to install the Windows SDK and .NET Framework 3.0 Runtime Components.  This gives you the documentation, samples, header files, libraries, and tools you need to develop applications that run on Windows.  You can download this from: http://www.microsoft.com/downloads/details.aspx?FamilyId=C2B1E300-F358-4523-B479-F53D234CDCCF&displaylang=en.  Note: it takes awhile, so be patient.  Also, I removed the documentation and samples, which makes the download and installation a lot faster.
From here you just need to download the R2 bits.  To find out how you can obtain BizTalk Server 2006 R2 (beta 2), take a look at this article: http://support.microsoft.com/kb/936046.  Or, if you want me to save you the work and take you directly to the bits, you can go here: https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=65&DownloadID=6014.
The BizTalk 2006 R2 Beta 2 release includes the following components:

  • BizTalk core engine
  • EDI
  • RFID
  • LOB Adapters
  • BizTalk Accelerators (HL7, SWIFT, RosettaNet)

The components are available by downloading and installing the following files:

  • BTS06R2_Beta2.exe
  • BTS06R2_Beta2_Accelerators.zip
  • BizTalk LOB Adapters Sp1 Beta2.exe
  • CustomSOAPHeaderPipeline.zip

Note: if you only want the R2 functionality (e.g. WCF, etc) you only need BTS06R2_Beta2.exe.
After I downloaded all the files, I first extracted the contents of BTS06R2_Beta2.exe to a temporary folder (choose a folder you can remember, like C:TempBTS06R2_Beta2).  Next, I ran Setup.exe from that folder.  Click Next until you get to the Component Installation screen.  You’ll see that there are a few differences from the standard BizTalk components.  Here’s a peak:
 BizTalk Server 2006 R2 Installation Wizard
I decided to leave the default settings.  Feel free to do what you want.  Continue to click Next until you get to the Summary screen.  Review your selections and click Install (you may also want to set your auto-login credentials to save time).
After it installs you have to run the BizTalk Configuration Tool.  The configuration is roughly the same as it is for BizTalk Server 2006:
BizTalk Server 2006 R2 Configuration
I don’t plan on using many of the features at the moment (e.g. BAM, HWS, etc.) so I only installed the following features:
BizTalk Server 2006 R2 Features
And that’s it!  At this point, you will have BizTalk 2006 R2 (beta 2) installed and functioning.  Open up the BizTalk Server 2006 Administration Console and take a look at the adapters now available to you:
BizTalk Server 2006 R2 Adapters
Specifically, you now can use the following adapters:

  • WCF-BasicHttp
  • WCF-Custom
  • WCF-CustomIsolated
  • WCF-NetMsmq
  • WCF-NetNamedPipe
  • WCF-NetTcp
  • WCF-WSHttp

I hope this helps you explore the new functionality available to you in BizTalk Server 2006 R2.  Enjoy!

BizTalk process crashing with eConnect 9 adapter

I was able to use the XML sample documents that come with eConnect (C:Program FilesMicrosoft Great PlainseConnect9XML Sample DocumentsIncoming) to write some test data into my GP database using the eConnect 9.0 adapters for BizTalk Server 2006.  I setup a test environment using the TWO database for Great Plains, and through the adapter was able to insert data.  Feeling that I had made some good progress, I shutdown my machine (they are all virtualized environments) and went home for the night.

When I started everything up the next day I tried to reproduce this behavior so that I could move on with my integration.  However, every time I tried to write the document into GP through the adapter, I got the following error:

BizTalk DW Reporting

Event Type:    Error
Event Source:  BizTalk DW Reporting
Event ID:      1000
Description:   Faulting application btsntsvc.exe, version 3.5.1602.0, stamp 4410e6b9, faulting module kernel32.dll, version 5.2.3790.4062, stamp 46264680, debug? 0, fault address 0x0000bee7.

This had me stumped for a little while.  I decided to use a useful tool I received from Microsoft called the Direct Document Sender.NET (I’ve attached the file at the bottom of this post) to try and diagnose the problem.  This tool allows you to post an XML document directly to eConnect so that you can test out the functionality without any 3rd party application (e.g. BizTalk Server).

Using this application, I tried to post the XML file again.  This time I received a much more useful error:

System.Runtime.InteropServices.COMException (0x8000401A): The server process could not be started because the configured identity is incorrect.  Check the username and password.

Aha!  This was a much more useful error!

I opened up Component Services (Start –> Administrative Tools –> Component Services), and browsed to Computers –> My Computer –> COM+ Applications –> eConnect 9 for Great Plains.  The Microsoft Great Plains eConnect Version 9 COM Plus Package has a tab entitled Identity which allows you to define the user account under which the application runs.  Turns out that somehow my account was switched from the user I specified at installation to the interactive user system account:

Component

And this was the root cause of my problem.  eConnect requires integrated security and uses the user specified in this identity tab to access the GP database.  Consequently, the user specified must have access to the appropriate database on the GP server and also be a part of the DYNGRP role.

So, I went ahead and added my user to the DYNGRP role, made sure it had the appropriate access, and then updated account used by the COM+ package:

Component2

Having made these changes, I tested with the Document Sender.NET application – worked the first time!  Confidently I tested with BizTalk, and sure enough everything started to work!

I’m not sure why it initially worked and then stopped working after I restarted the machines.  I’m not sure if the account credentials changed or if something else was happening the first time.  All I know is that you have to use an appropriate user that has access to the database and is a member of the appropriate role, otherwise you’ll get the errors I listed above.

I hope this helps!

DirectDoc9.zip (7.42 KB)