Quantcast
Channel: West Wind Message Board Messages
Viewing all articles
Browse latest Browse all 10393

Re: SOAP 3.0 Webservice in Win8 App

$
0
0
Re: SOAP 3.0 Webservice in Win8 App
VFP and .NET Interop
Re: SOAP 3.0 Webservice in Win8 App
10/17/2012
12:31:31 PM
3MF0QUGXY Show this entire thread in new window
Gratar Image based on email address
From:
Rick Strahl
To:
Attachments:
None

I would probably build an ASMX service instead of WCF because WCF tends to be more complex on the server and by default produces WSDL that's not consumable by all clients (especially old ones). It creates multiple WSDL imports that are not supported by many SOAP clients (fixed in .NET 4.5 as a query string flag which is non-obvious)).

Then you also need to make sure you allow for STA components. Here's more info on that:
http://www.west-wind.com/weblog/posts/2012/Sep/18/Creating-STA-COM-compatible-ASPNET-Applications

You can set this up for both ASMX and WCF based services.

.NET is multi-threaded so you can run multiple simultaneous requests, just like the SOAP ISAPI handler does. I would not recommned sharing the FoxPro COM object - there are thread marshaling issues that will make this very slow. Just create the instance for each Web Service request individually as atomically as possible and let the VFP runtime's STA management deal with spinning up simultaneous shared instances. This is the same as the SOAP handler does - it doesn't cache instances.

+++ Rick ---



Hi Rick,


It might be a better choice to re-write the service in .NET and serve the data from a FoxPro COM object possibly.

you're talking of a .NET WCF service hosted by IIS, don't you? Let's assume I'll go this way. There are a few design questions to answer upfront.

1. The current Vfp clients need a new service wrapper instead of MSSOAP.SoapClient30. I can write it as a .NET DLL and register it for COM Interop. Any idea if this will affect performance when the response from the server is bigger than 10 MB?

2. Our SOAP client is configured for a 10 minute timeout and some of our users need this. How do I do this with a .NET service client?

3. With a SOAP 3.0 service IIS automatically loads as many instances of our Vfp MTDLL as there are parallel requests. After ach request the vfp MTDLL instance is dropped. Is this behavior different with a .NET WCF service? Or is there even a way to keep the Vfp DLL instance in memory and reuse it with the next request?

4. A WCF web service can be hosted by a Windows NT service. Does this change the answer to any of my previous questions?

TIA,

Markus



Rick Strahl
West Wind Technologies

Making waves on the Web

from Maui, Hawaii

Viewing all articles
Browse latest Browse all 10393

Trending Articles