This topic includes some of the problems ArcGIS API for Silverlight developers hit in their developement, and solutions for those issues. They include the following problems:
- I cannot load data from my server.
- I cannot load data from an external data source outside my application's domain.
- Tasks return a limited number of features.
- Accessing a Silverlight application on a web server returns error code 2103 in the browser.
Problem: I cannot load data from my server
- If accessing ArcGIS Server services, make sure that the ArcGIS Services Directory is set up and functioning. Navigate to http://<host>/arcgis/rest/services in a browser. See Discovering services for more information.
- Make sure the REST endpoint for the service is available. Copy and paste the URL defined in your Silverlight application into a browser. For example, http://<host>/arcgis/rest/services/USA/MapServer.
- If your Silverlight application is not hosted on the same server or domain as the data (services) you are accessing, you need a clientaccesspolicy.xml file on the remote server. See the next problem for more information.
- Use the InitializationFailure event on the layer to determine if an error is occurring, and interrogate the error message.
- View the HTTP request and response using a standard tool for interrogating HTTP communication. For example Fiddler, Silverlight Spy, FireBug (FireFox add-on), and so on, to determine if a failure has occurred.
Problem: I cannot load data from an external data source outside my application's domain
To access data from a remote server (a different server from the one where your Silverlight application is hosted), the remote server needs to have a clientaccesspolicy.xml file in the web servers' root directory. For security reasons, a web browser is not allowed to access data that resides outside the exact web domain where the compiled Silverlight application (XAP) file originated. However, a Silverlight application can load data across domains if permission is granted from the server. This is accomplished by having a small clientaccesspolicy.xml file on the remote server that permits Silverlight to connect to services on that server. For additional information, read the topic Making a Service Available Across Domain Boundaries. For more information on the structure and function of a clientaccesspolicy.xml file, read the topic Network Security Access Restrictions in Silverlight.
As an example, you can view the policy file used by ArcGIS Online at http://services.arcgisonline.com/clientaccesspolicy.xml.
Problem: Tasks return a limited number of features
By default, queries against ArcGIS Server services are limited to returning 500 features and MapIt services are limited to 1000 features at a time. Both limits can be modified on the server, if you have access. If not, iterate through consecutive blocks of results on the client by using the field that contains a unique key (for example, primary key) to track progress.
Problem: Accessing a Silverlight application on a web server returns error code 2103 in the browser
This error may indicate that a set of mime types needed to support Silverlight applications must be added to the web server that hosts your application. Add the following mime types:
If necessary, use Microsoft's Configuring IIS for Silverlight Applications document as a guide.