We have an MXD that uses a custom projection. It has several scale-dependent layers. When we publish the MXD as a map service, the Silverlight (1.2) client ignores all scale dependencies and draws all layers at all scales. If we instead publish an MSD version of the same map, scale dependencies are observed correctly. If I load the MXD-based service into ArcMap or the default JavaScript API viewer in the Services Directory, scale dependencies are also observed. So the problem is only with the Silverlight client, and only with an MXD-based service.
The map request being sent from Silverlight looks like this (extra spaces added to foil the forum insistence on creating a hyperlink and cutting off the end of the URL):
http : // localhost/ArcGIS/rest/services/MyMapService/MapServer/export?bbox=993527.256968378,1070962.9019304,1077799.96052389,1110301.46777522&size=500,350&format=png24&transparent=true&imageSR=0&bboxSR=0&f=image
If I remove the "&imageSR=0" and rerun the request, scale dependencies are observed.
It seems then there is a bug in the Silverlight client, and also the core ArcGIS Server has an inconsistency with such requests. If the spatial reference isn't available in the client, then the Silverlight client should not include the imageSR parameter. The core Server should also be adjusted to have consistent behavior, preferably to take the MSD service's approach when the wkid is zero.
FYI, the map projection string in this case looks like this:
PROJCS["NAD83 Albers Equal Area, Custom",GEOGCS["North_American_Datum_1983",DATUM["D_North_American_1983",SPHEROID["Geodetic_Reference_System_of_1980",6378137.0,298.2572221009113]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-86.0],PARAMETER["standard_parallel_1",41.0],PARAMETER["standard_parallel_2",31.0],PARAMETER["latitude_of_origin",25.0],UNIT["Foot_US",0.3048006096012192]]
Bryan Baker
GIS, Inc.