It took a while to find it but here is one solution to the problem of the disappearing web service boxes. The problem lies in the file listed below in the GetServiceResponseInfo method.
CommunityStarterKit\Engine\Framework\Services\Components\ServiceUtility.cs
Here are the lines of code that are causing the problem. (Lines 458 through 460)
// Don't refresh if under time limit
if (serviceInfo.DateLastRefreshed.AddMinutes(serviceInfo.RefreshRate) > DateTime.Now)
return null;
This causes the method to return a null value if the refresh rate threshold has not been reached even if the cache has already returned a null value.
Anyway, here is a quick fix that has corrected my disappearing web service boxes.
Just replace the above code with the following:
// Don't refresh if under time limit
if (serviceInfo.DateLastRefreshed.AddMinutes(Convert.ToDouble(serviceInfo.RefreshRate)) > DateTime.Now){
// if the cache in null you have to recall the service
if (responseInfo != null )
return null;
}
What I did was to prevent the GetServiceResponseInfo method from returning a null if the cache was null regardless of the last refresh time.
One solution may be to increase the lenght of the session state on your web server. By default they are set to 20 minutes which is about the time the RSS takes to disappear. Is this a conincedence or have any of you noticed this relationship as well?