Recently I had to configure an HTTP receive adapter for a POX integration with an external Java platform. This blog post covers a “gotcha” to be aware of.
– Win Server 2008 R2 64-bit
– BTS 2010 & SQL Server 2008 R2
– POX (PlainOldXml) through POST, no SOAP here…
– Basic authentication
– HTTPS (which includes install server certificate)
Requirement 1 – Configure HTTP Adapter
– I followed the instructions under http://msdn.microsoft.com/en-us/library/aa560119(v=BTS.70).aspx .
Now to the gotcha… Step number 12 in the documentation (http://msdn.microsoft.com/en-us/library/aa559072(v=BTS.70).aspx) says that I should create an application pool with “NET Framework 2.0.50727”.
The problem with this is when I receive a message and using a pipeline “XMLReceive” for example. Biztalk will go to the classic GAC (c:\windows\assembly) and search for my deployed assemblies. BTS2010 uses .net 4.0 and the assemblies are stored under C:\Windows\Microsoft.NET\assembly instead so Biztalk will report an error that I haven’t GAC’ed my assemblies.
Because I run on 64 bit I need to set “Enable 32-bit Applications” to false in my App Pool.
In the documentation there is a script that sets “Enable 32-bit Applications” to false in all of your App Pools (NOT good if you run BAM portal..)
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 0
Instead right-click on the newly created App pool and chose “Advanced”. Set “Enable 32-bit Applications” to false.
Requirement 2 – Basic Authentication
Go to IIS –> my recently configured application –>Authentication. Just enable Basic Authentication.
Requirement 3 – Enable SSL
Install a server certificate (Not covered in this blog post), this doesn’t have to be valid. For example you could use the same certificate that is used in your PROD environment, it will not be valid (wrong path) in the TEST/DEV environment but it will work.
Go to IIS –> my recently configured application –>SSL Settings Set Require SSL and Ignore client certificates.
Configure your Receive location i Biztalk and you’re done!
To test your Receive location use HttpWebRequest class. Create a simple Console Application and post xml from there. See this link http://p2p.wrox.com/asp-net-1-0-1-1-professional/57098-c-post-xml-using-httpwebrequest-response.html