Regarding the suggestion by soulsolutions to return 504 (gateway timeout) from the tile-server while queing the requested tile to be rendered by a separate worker thread on the server. I've tried this with our project and it works, except that I've found
that the Silverlight app doesn't always retry for the failed image tile.
Adding trace messages to the server ashx handler that serves tiles reveals that the tile request from Silverlight is sometimes retried too quickly, before the missing tile has been rendered and added to the cache. If I return a second 504 it then seems to
give up, so the tile is not displayed, even though the server has by then rendered it and added it to the cache.
I've tried delaying the return of the 504 to give more time for the tile rendering thread to provide the tile, and that sort of works though not perfectly and seems like a poor solution. I'd rather be able to control the Silverlight client's retries. Id
like to control the number of retries and the delay between them.
I tried intercepting the MultiScaleImage ImageFailed event in the Silverlight app, but it doesn't seem to give any useful information such as the url of the tile request that failed, or the ability to re-queue the request. Is there a way to control the retry
of tile-image requests that fail from the Silverlight code?