tags:

views:

1147

answers:

6

Hi

I am new to BizTalk server and I want to know that is it possible to communicate with bizTalk like a web server? My scenario is like this.

I have a application in silverlight that will send request to biztalk (web service or http) with some parameter, biztalk will send that request to third party web service, third party web service will give response to Biztalk, this response will be sent back to my silverlight application.

Is this possible? if yes can anybody give me an article that help in creating this type of application.

+4  A: 

Yes - Use the SOAP adapter and a web service port Service Station from MS

You will need to create an orchestration and a map (if the schema are different between the 2 services) to handle the actual passing of Messages between the 2 web services. First Steps in Orchestrations

Creating Maps in BizTalk

and a good guide and tutorial for Webservices here

Calling biztalk webservice from Silverlight http://weblogs.asp.net/jgalloway/archive/2007/06/14/calling-an-asmx-webservice-from-silverlight-use-a-static-port.aspx

+2  A: 

Yes. You can set up an HTTP Receive Port and handle straight XML messages from SilverLight and then pass back whatever message SilverLight requires (be sure to use a 2-Way Receive/Send Port). The bigger question here is why? Why not talk to the far end web service directly from SilverLight? Is BizTalk adding any value here? Are you including BizTalk as an abstractionlayer for future functionality? Is BizTalk some how enriching the messages?

ChrisLoris
+1  A: 

My questions are the same as ChrisLoris.. Why use Biztalk here? If its just to call Service A and then B and deliver information back to the silverlight app, I would rather create acustom .net .dll to handle it. If you really want to have a workflow you can use WorkflowFoundation..

ThorHalvor
A: 

Can I add another twist?

I am trying to implement WS-Security (Message level) with X.509 Certificates. I am using a basicHttp receiving BizTalk port, with message level security, and Certificate client credential requirements. I created, with Makecert.exe using my own RootCA for testing, a service certificate and a client certificate.

I can never get the .SVC file, hosted in ISS, to run. I am getting the following error:

Cannot find the X.509 certificate using the following search criteria: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindByThumbprint', FindValue 'DFB6EBFEA3588BC68858A00DB39795FB63AE856F'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code

Stack Trace:

[InvalidOperationException: Cannot find the X.509 certificate using the following search criteria: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindByThumbprint', FindValue 'DFB6EBFEA3588BC68858A00DB39795FB63AE856F'.] System.ServiceModel.Security.SecurityUtils.GetCertificateFromStoreCore(StoreName storeName, StoreLocation storeLocation, X509FindType findType, Object findValue, EndpointAddress target, Boolean throwIfMultipleOrNoMatch) +241 System.ServiceModel.Security.SecurityUtils.GetCertificateFromStore(StoreName storeName, StoreLocation storeLocation, X509FindType findType, Object findValue, EndpointAddress target) +34 System.ServiceModel.Security.X509CertificateRecipientServiceCredential.SetCertificate(StoreLocation storeLocation, StoreName storeName, X509FindType findType, Object findValue) +49 Microsoft.BizTalk.Adapter.Wcf.Runtime.BtsServiceHostBase.SetServiceCertificate() +210 Microsoft.BizTalk.Adapter.Wcf.Runtime.BtsServiceHostBase.InitializeRuntime() +871 Microsoft.BizTalk.Adapter.Wcf.Runtime.WebServiceHost`3.InitializeRuntime() +110 System.ServiceModel.ServiceHostBase.OnBeginOpen() +27 System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +49 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +261 System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +121 System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +479

I think I have installed the private key and public key for the service certificate properly and allowed the BizTalkUser and ASPNET user access to the private key.

Any Ideas?

A: 

Hey Eric, I am also facing the same problem. did you find out any solution?

A: 

I found the solution for this problem. You need to install the certificate in the user store of the user under which biztalk host instance is running and also grant access to private key of the certificate using winhttpcertcfg tool. 1)Open the mmc using runas /user:<> mmc and import the certificate into the user store. 2)winhttpcertcfg -g -c LOCAL_MACHINE\My -s <> -a <>

These two steps should do the trick.