What version of ArcGIS are you using?
We will be using ArcGIS 9.3.1 with potential to go to 10 or 10.1 if there is significant benefit.
I'm not sure how to do it in 9.3.1, but we were just able to do it in 10. Here are some links to threads that may help:
http://forums.arcgis.com/threads/2381-Trying-to-create-map-service-with-non-spatial-SQL-Server-datab...
http://forums.arcgis.com/threads/24893-ArcGIS-Conecction-OLE-DB-Publishing-MapService-Problem?highli...
http://forums.arcgis.com/threads/42972-adding-layer-to-.mxd-from-OLE-database-connection-produces-in...
You can also email me at mellissa.lasslo[@]carbon[dot]utah[dot]gov if you have any more questions or need help.
Yes. It is better to create the WCF service as regular .NET class library (.dll); then create a standard web site of type "Web Service" to deploy the .dll. This way you get all the power of .NET that Silverlight lacks. I have done it already and works great.
My scenario may be somewhat different from yours or any other. I have my Silverlight application sitting on the Cloud server, getting all map services from the ArcGIS Server on the Cloud as well. My Silverlight application connects to non-GIS servers (standard MSSQL servers) outside the Cloud to retrieve dynamic data (always changing information [massive water meter readings that change every 2 to 4 hours]). Static information (meter id, address, etc.) comes from the ArcGIS Server in the Cloud, but other dynamic attributes are retrieved from those other servers outside the Cloud.
I can save and open files (somehting very unsual in Silverlight with the browser option on), for my WCF service does it all.
I can share some code and the .dll if anyone needs it.
Hugo.