Using BTSHTTPReceive in x64 Environment
I have a VM with BTS 2010 installed on a Windows Server 2008 R2 x64. In this environment I wanted to find out how to work with HTTP Adapter. Fortunately there two samples found in <install folder>:\Program Files(x86)\BizTalk Server 2010\SDK\Samples\AdapterUsage\HTTPRequestResponse or HTTPSolicitResponse (you will find them if you have selected the SDK feature during BizTalk Installation). Before running the example you will need to follow these steps if working in x64 environment (i.e. my VM):
- Open IIS and click Machine Name on left panel, then click "ISAPI and CGI restrictions" on the right panel, then Add the ISAPI or CGI path:
On a 64 bit machine add: C:\Program Files (x86)\Microsoft BizTalk Server 2010\HttpReceive64\BTSHTTPReceive.dll
2. Check allowed extension path or execute.
For sample for instance RequestResponse, you will need to click setup in HTTPRequestResponse folder. After refreshing IIS you will see HTTPRequestResponseSample.
Now you will have to perform the following steps:
- Click "HTTPRequestResponseSample" on left panel, then click "Handler Mapping" on middle panel, then click "Add script mapping” with the following setting:
Request path:BTSHTTPReceive.dll
Executable:
On 64 bit machine add: C:\Program Files (x86)\Microsoft BizTalk Server 2010\HttpReceive64\
- Click Request Restriction
Click OK and click YES if ask to add this ISAPI extension.
From sample text on MSDN I understand I had to configure the virtual directory for this sample to run under the context of a user in the BizTalk Isolated Host Users and IIS_IURS user groups, So I had to configure the virtual directory to run in a new IIS application pool by completing the following steps (these differ from original text as I have IIS 7.0):
- Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
- In the Internet Information Services (IIS) Manager, navigate to the Application Pools folder.
- Right-click the Application Pools folder and click New, Application Pool...
- Enter a name for the Application Pool ID: such as BizTalkSDKSamples, verify that the .NET Framework 4.0.30319 option is selected, and Managed Pipeline Mode Integrated (leave Start the Application pool immediately unchecked) and click OK to create the new application pool.
- Click Advanced Settings in Edit Application Pool pane on left.
- Click the Identity of Process model and change the identity under which this application pool runs to a user that is a member of the BizTalk Isolated Host Users user group. This user should also be a member of the local IIS_IURS user group.
- Configure the virtual directory for this SDK sample to run under the new application pool. The Application pool setting is available on the Advanced Setting in Actions Pane tab of the HTTPRequestResponseSample.
- Start application pool.
Technorati: biztalk server 2010To test if this is working I browsed to web application belonging to this sample.
I entered 1000 in Estimated Price and clicked Place Order.
I got the above as result. I check in BizTalk Administration Console if any error occurred, but I could find any. So I can conclude from that this sample work in my x64 environment. I hope this little exploration of HTTP Adapter in 64-bits environment will help others when configuring their HTTP configuration.
Comments
Thanks so much for putting this together! I've been banging my head against enabling HTTP recv ports on BTS 2010 with IIS 7 for a couple of days now and none of the MS Biztalk went into this level of detail.
I followed your instructions, but when I browse to the responserequest asp.net app I get the following error...
HTTP Error 500.21 - Internal Server Error
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list
I think this is more of an IIS config issue than BTS, but it's blocking me none the less. Do you have any thoughts on it?
Thanks for any suggestions and htis post among your others. I've used many of your explorations in my own BizTalk adventures.
Thanks again,
Jeff W
I've been banging my head tryign to get HTTP recv ports to work with BTS 2010 and IIS 7 for a couple of days now. This post went into alot more detail than the MS documentation.
Unfortunately, I'm still getting the following error when I browse to the requestresponse application...
------------
HTTP Error 500.21 - Internal Server Error
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list
------------
I think this is more of an IIS 7 config issue than a BTS one, if you have any suggestions I'd appreciate it.
Thanks again for this post and your others. I've used may of your explorations in my own BizTalk adventures over the years.
- Jeff
Unfortunately I'm still getting an error when I browse to the requestresponse application (below)...
HTTP Error 500.21 - Internal Server Error
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list
Do you know what might be causing it? I beleive it's an IIS 7 config issue as opposed to BTS. Any suggestion would be helpful at this point.
Thanks again for this post and your others, I've used several of your explorations in my own BizTalk adventures.
- Jeff
http://social.msdn.microsoft.com/Forums/en/biztalkgeneral/thread/235aa9b1-348d-4135-ab5c-bdba16993de1
James