>please clarify - we are simply trying to use the internet and web services to provide remote access to our database. I need to send SQL queries, udpates, etc through - I would like to keep them in transactions
IMHO, a Web Service should be a wrapper. So, basically, all methods in the Web Service simply received the parameters and forward it to another engine. Then, that engine returns the XML string to it which then returns it to the client.
All the business and data objects are out of the WS thus in another EXE/DLL which is being called on each request. For us, for example, we use WWC. So, for each WS request, we forward the request to WWC which returns an XML string. Our WWC enhanced framework is loaded in memory at the startup of the server. We load four instances. So, for each hit, it already has everything loaded in memory (base classes, public variables, SQL Server connection state, etc.). So, it goes like a flash. If you load your environment each time, you're gonna drop your server if you have high traffic. This design also provides you more flexibility.