This can be done as follows:
Starting in Visual Studio:
- On the project where you want the schemas to be imported, right click and select Add Generated Items
- Select Consume WCF Service
- Select
Metadata Files (WSDL and XSD)
on the BizTalk consuming wizard, and add the WSDL / XSD File(s), and give the artifacts a namespace.
- (Don't delete the .odx file as it contains the Port Type)
- Then create your Orch for processing the incoming message, which returns a response of the appropriate response type (e.g. See the ExposeWebService Biztalk sample, using the vendor supplied request and response schemas as input and output respectively). Use the imported Port Type to save time having to find and assign the schemas to request and response. The Port will also have the operation name(s) that the vendor is expecting.
- You need to build and deploy your project to BTS.
- Then can then use the BizTalk WCF publication wizard to publish the webservice e.g. on your local IIS. If you are using Direct binding via the message box, then you won't need to create a new receive port if you already have a WCF receive port. You can specify the name of the virtual directory, but note that BizTalk will generate an arbitrary name for the .svc.
- If you don't already have an App Pool for BizTalk WCF receive, you need to create one, using the same credentials as for the BizTalk isolated host
- Assign the virtual directory created by the wizard above to the app pool.
- Ensure that the receive location in BizTalk is running
You should now be able to navigate to the virtual root where your orch is published, add service references, test your orch etc.
Since your integration vendor already has the WSDL, you can also skip the publication entirely (steps 7-9) if you don't want to use IIS and instead get BizTalk to listen on Port 80 by manually creating the receive port directly in Biztalk using WCF-Custom. You may need to use netsh to allow this (unless your BizTalk runs with admin access, or similar, which isn't advisable).