Home Page › Forums › BizTalk 2004 – BizTalk 2010 › http adapter
- This topic has 16 replies, 1 voice, and was last updated 8 years, 4 months ago by
community-content.
-
AuthorPosts
-
-
April 17, 2008 at 10:00 AM #19373
Can I receive a http message from a receive location which is posted by a send port as a http message?
-
April 18, 2008 at 12:53 AM #19382
Sidhu,
Yes you can, simply point the Send Port at the address exposed by the Receive Location.
However, I would have to question why you are doing this, as you’re simply creating a circular reference from what I can tell. Can you elaborate on what you are trying to acheive and I’m sure the community can offer suggestions as to best practice.
Regards, Nick.
-
April 18, 2008 at 6:44 AM #19389
Nick, thanks for your response
I am actually new to biztalk and I am just trying to know when sending a message using http adapter, at send port do we have to give address of an aspx file which can process the HTTP Message. Can I just post a message to a location where my receive port configured using http adapter is listening to?
Regards
Sidhu
-
April 18, 2008 at 8:40 AM #19393
Hi Sidhu,
You appear to be asking two different questions, let me try and answer both:
If you want to expose some BizTalk functionality over the HTTP protocol, you would configure a receive location with a HTTP adapter. This receive location would detail the exposed URL (normally an .aspx page) and would run against an ‘Isolated Host’ (that essentially means that IIS is managing the receipt of theHTTP request rather than BizTalk itself). Once the request is received you can treat it like any other BizTalk message; however you would normally return a response message via the same receive port/location.
If you wanted to consume a web-resource, you would use a send port with a HTTP adapter (running under an ‘In Process’ host, i.e. BizTalk, not IIS) and specify the URL of the resource you wanted to consume (an RSS feed for example, not necessarily an .aspx page!). The response message would be delivered back to your Send Port and published back to the BizTalk message box, allowing orchestrations/other send ports to act on the response message.
If this doesn’t answer your question, can you elaborate on what you mean by “Can I just post a message to a location where my receive port configured using http adapter is listening to?”!
As for resources detailing how to use the HTTP adapter, take a look at the following:
Cheers, Nick.
-
April 18, 2008 at 12:04 PM #19394
Nick,
Thanks for your explanation. Below is what I am trying to ask you.
Can I just post a message using a send port just like I do it using file adapter(I mean I won’t except anything back)? If so, Can I have a biztalk application listening to this message at the other end via http receive port?
Once again, thanks for your support.
-
April 19, 2008 at 12:53 AM #19397
Sidhu,
Yes you can post a message via a HTTP Send Port from one BizTalk environment to a second BizTalk environment that is listening via a HTTP Receive Location. If you’re doing more than simply invoking a web-page – i.e. you’re sending a message that needs to be actioned in some way – you may want to consider using a web-service and the SOAP adapter for this task.
Regards, Nick.
-
April 21, 2008 at 6:41 AM #19408
Nick,
Do you mean, I have to publish my second receive port as a web service?
-
April 21, 2008 at 6:54 AM #19410
Sidhu,
If you are just doing HTTP stuff (i.e. not web-services), you can use the HTTP adapter on both the Send and Receive ports.
If however, you decide to use web-services, you will need to expose either an orchestration or schema as a web-service (using the SOAP adapter) on the receive side and consume with a Send Port that is also configured to use the SOAP adapter (invariably the Send Port would be a solicit-reponse port: it sends a request and receives a response).
Hope this helps, Nick.
-
April 21, 2008 at 7:46 AM #19413
Nick,
I am just using http adapter on both send receive ports. At the send port I have given the Destination URL as “http://localhost/bts_http_sample/“, where my receive port of second orchestration is listening to, but I am getting exception saying “Method Not allowed”, Do I need to modify this?
Once again, thanks for your patience in response.
Regards
Sidhu
-
April 29, 2008 at 5:27 AM #19482
To create an HTTP receive location you need to create a vrtual directory in IIS that maps to the physical directory C:\Program Files\Microsoft BizTalk Server 2006\HttpReceive.
The receive location url will be /Your_virtual_directory/BTSHTTPReceive.dll.
You will also need to allow this Web Service extension in IIS. In IIS Admin create a new web service extension called BTSHTTPReceive and select file C:\Program Files\Microsoft BizTalk Server 2006\HttpReceive\BTSHTTPReceive.dll as a required file and set to Allowed.Your send port shouldthen point to http://localhost/Your_Virtual_Directory/BTSHTTPReceive.dll
-
April 30, 2008 at 7:39 AM #19498
Thank you Greg,
It’s working.
-
March 29, 2010 at 1:17 AM #24478
Hi,
I already developed an orchestration with HTTP port two ways for receiving http request and process and send response using the same port. I configured the IIS and also receive location using URI: /HTTPTest/BTSHTTPReceive.dll?sourceMsisdn=1234567. But when i call from URL using http://localhost/HTTPTest/BTSHTTPReceive.dll?sourceMsisdn=1234567 then it show HTTP 500 Internal server Error. But i can not understand why it is show? Please help me on that. If there any mistake i have done then also provide your suggestions. I am waiting for response.
Please help.
Thanks
Sarwar
-
June 17, 2013 at 3:47 PM #26076
Application pool or identity which your are using should the doman\username
-
April 9, 2014 at 2:30 AM #26308
Hello greg.forsythe,
In one of your post you have mentioned that
"To create an HTTP receive location you need to create a vrtual directory in IIS that maps to the physical directory C:\Program Files\Microsoft BizTalk Server 2006\HttpReceive.
The receive location url will be /Your_virtual_directory/BTSHTTPReceive.dll.
You will also need to allow this Web Service extension in IIS. In IIS Admin create a new web service extension called BTSHTTPReceive and select file C:\Program Files\Microsoft BizTalk Server 2006\HttpReceive\BTSHTTPReceive.dll as a required file and set to Allowed"
Now the challenge I'm facing is that I have got 2 servers say server A & B.
In Server A, I've installed BizTalk and
in Server B, I've to do IIS configuration. In such case, how should I may the physical directory of the virtual directory to point to \HttpReceive.dll?
The reason of doing so is that we dont have an external IP for BizTalk server so the sender will not be able to connect to the BizTalk server. So as a work around we are planning to use another server where we will configure the virtual directory.
Your quick response will be very useful and will appricable.
Thank you in advance.
Manju RS
-
April 9, 2014 at 3:34 AM #26309
Unfortunately, it is not possible to deploy the Http Receive Location on a non-BizTalk Server.
There are two options to avoid publishing the BizTalk Server’s IP address directly to the internet.
1. Write your own Http receive software that can be deployed to the IIS server. This will simply forward all requests to the internal BizTalk server receive location. You can use any BizTalk supported protocol here.
2. Use a reverse proxy server that will map the internal BizTalk Http Url externally. (f5.com/…/reverse-proxy)
-
April 9, 2014 at 9:40 PM #26310
HI Greg,
Thanks for your inputs. I'm going with second option i.e, reverse proxy. And I'm stuck at one point.
I've installed the URL Rewrite Module installed & Application Request Routing and followed the steps as given in "http://www.iis.net/…/reverse-proxy-with-url-rewrite-v2-and-application-request-routing"
In the web config, I have added the below rule. Please correct if the below rule is not right.
<rule name="Reverse Proxy for AS2" stopProcessing="true">
<match url=" http://SERVER_B_IP/EDIIN/BTSHTTPReceive.dll" />
<action type="Rewrite" url=" http://SERVER_A_IP/EDIIN/BTSHTTPReceive.dll" />
</rule>
<rule name="Reverse Proxy for AS2" stopProcessing="true">
<match url="^SERVER_B_IP/(.*)" />
<action type="Rewrite" url="http://SERVER_A_IP/{R:1}" />
</rule>
where server A is BizTalk Server and Server B is IIS Server.
-
April 9, 2014 at 9:45 PM #26311
Sorry Greg,
Please ignore my previous post. I have used URL Rewrite and created Reverse Proxy rule and have mentioned the IP address of the biztalk server and it worked for me. 🙂
I'll now try with digital certificates and all other stuff.
Thank you so much greg for your advise. It readlly helped me.
Thanks,
Manju RS
-
-
-
-
-
-
-
-
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.