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.
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-databasehttp://forums.arcgis.com/threads/24893-ArcGIS-Conecction-OLE-DB-Publishing-MapService-Problem?highlight=odchttp://forums.arcgis.com/threads/42972-adding-layer-to-.mxd-from-OLE-database-connection-produces-invalid-layer-errorYou can also email me at mellissa.lasslo[@]carbon[dot]utah[dot]gov if you have any more questions or need help.
We will be using ArcGIS 9.3.1 with potential to go to 10 or 10.1 if there is significant benefit.
What version of ArcGIS are you using?
When you say map service are you talking about an interactive map service online? Are you using ArcGIS Server to create the map service?
...since you have a common field name between the Parcel feature class and the stand alone table 'permit'; I would suggest to perform a relationship operation between them and then publish the map service. For example:http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Petroleum/KSPetro/MapServerIn your Silverlight application, you may then use the queryTask.ExecuteRelationshipQueryAsync() method to perform the query on the Related table.
I hate repying like this. I wish I knew a more specific answer. I will be doing the same thing as you and this is how I am doing it:1. Create a WCF service that runs on the same data server or in another web server which has tcpip access to it. The WCF service will serve your data.2. Consume (create an instance) of the WCF in your Silverlight application.3. Call the method in the WCF service that exposes (retrieves) the data you need.Upon creating the WCF, create it an independent library (standard dll), separated from Silverlight.Do not return primitive data types in your WCF service, but rather complex data types that apply to your business domain; that is, if you are returning permits, create a custom business object (cbo) that exposes a permit. For example, I retrieve water meters info, so I have a Meter cbo returned:/* request */public class Meter{ public long DcomId { get; set; } public long DeviceId { get; set; } public short DeviceType { get; set; } ...}The WCF fills this object and this is the one returned to you in the Silverlight application.Also, when you request, do not use primitive values either; use a request class:/* Result */public class PermitRequest{ public string Name { get; set; } public int ID { get; set; } public DateTime { get; set; }}Now, your class that exposes the service in the WCF service has a method like this:public PermitResult GetPermit(PermitRequest request){}From your Silverlight application:Meter myMeter = (Meter)objWCF.GetPermit(objPermitRequest);Sorry about this....As I said, I wish I knew a shorter option.Hugo.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.