Hi everybody, all people know how to expose orchestration or schemas as WCF service with IIS.
But sometime it’s not necessary to use IIS (I’ll tell about that in a future article) for example with a flow which has some call per day.
First thing as usual you need to develop your orchestration and deploy it :
This orchestration receive and simple schemas and send an acknowledge
After deploy it, you need to configure it in BizTalk console administration.
Configure the receive-send port with a WCF port type :
if you want to use WCF-basicHttp or WCF-WSHttp you must use WCF-custom and choose the right binding, for this example I’ll use basicHttpBing :
you can leave the binding behavior configuration to its default value. You just need to put an unique URI like http://Localhost/WCF_WithoutIIS/sample.svc
For validating type the uri in your internet Browser you’ll see
Now your port is OK and can receive message. In the BizTalk administration console, bind your orchestration to your noew port and all it’s OK;
Now, we need to generate the WSDL, as you can see in the previous picture, our service print that we don’t have mex endpoint. So we can’t generate proxy to call this service.
To generate the WSDL, execute BizTalk WCF Service Publishing Wizard
On the first page select « Metadata only endpoint (MEX) » and select your receive location :
Next it works as usual, you select a schema or an orchestration, the target namespace….
At the end it generate a Vdir only to retrieve your wsdl. Once it’s retrieved you can delete the new Vdir and all work.
To test you can add a new service reference in a console application