Can I receive a http message from a receive location which is posted by a send port as a http message?
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.
An Independent BizTalk Consultant in the UK - Blog at http://www.modhul.com
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?
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:
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.
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.
Do you mean, I have to publish my second receive port as a web service?
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.
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.
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
Thank you Greg,
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.
Application pool or identity which your are using should the doman\username
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.
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)