Skip to main content

How to fix Windows Server AppFabric Dashboard on Windows Server 2012 / Windows 8

Windows Server AppFabric is a great enhancement for IIS and its caching capabilities are great for .NET applications. But currently there is a very annoying bug regarding its monitoring UI, so called “Dashboard”. Especially for me as a non WF guy (I am actually just working with WCF) it was really hard to figure it out. Hence, many thanks to Gianluca from Distributed Services at Microsoft!

Windows Server AppFabric Dashboard does not work on Windows Server 2012 / Windows 8. You will receive this error message "Unable to cast object of type 'System.Management.Automation.PSCustomObject' to type 'Microsoft.ApplicationServer.Management.Data.GroupByInfo'." This error will cause that you cannot see any request statistics neither WF nor for WCF:


The reason is, I quote Microsoft here:

"[...] the root cause is a powershell script embedded in AF code that returns different results when ran on Windows 2012. This script is about statistics for Idle & persisted WF instances, if the related table in the SQL DB is empty then the script throws the exception that you see in the error message.  With just 1 idle or persisted WF the script runs to completion without any errors [...]"

The table is called "InstancesTable" and it is placed in the AppFabric Persistence database.

Actually there is no hotfix for this issue (Microsoft says we can expect it with CU5). To fix it follow the following steps:

1. Download this folder (source code can be found in the sub folder, hosted on OneDrive)

2. Deploy\Import the WF application "WorkflowService1.zip" on your IIS.

3. Execute "TestIdleWF.exe". You screen should look like this:



4. Check the event viewer in the section "Applications and Services Logs" => Microsoft => Windows => "Application Server-System Services". Here you should not find any issues regarding connection to your AppFabric Monitoring and Persistence databases. Otherwise you have to fix your SQL Server Connection Issues first and start again with step 3.


5. Check the table "InstancesTable" in your AppFabric Persistence database, it should contain at least one line now:


If the table is still empty you need to configure the persistence store for your application. Right click on your application -> Manage WCF and WF Services -> Configure -> Workflow Persistence:


6. Now you should be able to look into AppFabric Dashboard and see your requests now. For views where only WCF service history is displayed you will still find the known error message, but it can be ignored, Dashboard will work as expected. For views with WF or WF and WCF the message will disappear and reporting will be shown:


Update: Cumulative Update 5 will fix this issue!

Comments

Popular posts from this blog

Clean up AppFabric Dashboard Part 2: Duplicate collection entry in Web.config

In Part one I have already described how to remove phantom apps here on more supplement. These phantom apps could also remain in the AppFabric Monitoring db:


Just delete no longer needed entries in this table.
Duplicate collection entry When you receive this kind of issue, like "[...] Cannot add duplicate collection entry [...]" you have defined the a configuration section twice in two different Web.config files in different places in your file system.

Clear One easy solution is to use a clear statement. Searching for the inherited element There is a post in Microsoft's documentation which is explaining how to do it. Visual Studio in debug mode When you are working with Visual Studio in debug mode, which means you are just pressing F5 to run it on your local IIS instead of publishing it to a web server, you should keep in mind that e.g. your obj folder might contain more copies of your Web.config file. This could lead into this duplicate collection issue as well.

How to integrate AVM smart devices into HomeKit by using openHAB

After some evaluating openHAB (Vers. 2.2.0) on my NAS I wanted to do it right and started with this (German) article to use openHABian together with a Raspberry Pi.My primary goal was to integrate my AVM smart home devices to control them with HomeKit.

To get started I used the following items:
Raspberry PISD Card 16 GB And the following software (I used a Mac, so you might need to replace some tools if you use another OS): Download the latest openHABian image here. This is a dedicated linux distribution to provide an openHAB server.Download SD Formatter here. Needed to format your SD card.Download Etcher here. Needed to install the openHABian image on the SD card. Installation openHABianInsert the SD cardConnect the Raspberry Pi via LAN with your networkPlugin the Raspberry PiWait about 45 minutes until all updates were installedWhen everything went well you should be able to connect to http://openhabianpi:8080Connect via ssh: ssh openhabian@openhabianpi (standard password: openhabian)…

How does AppFabric cache calculates the values for RequestCount, ReadRequestCount, WriteRequestCount and MissCount?

When I started to use the Get-CacheStatistics cmdlet to monitor caching activities more intensivley I was often confused. Here an example:


Should not be ReadCount+WriteCount = RequestCount? Why is WriteRequestCount increasing +2 although I just send one put request?

By talking to Microsoft support I figured out how AppFabric cache calculates its numbers (Thanks to Gayathri from Distributed Service Team). Number calculation behavior depends on your configuration, high availability and local cache have a major impact on it.
ActivityRequestCount ReadRequestCount WriteRequestCount MissCount DataCacheFactory is initialized and Named Cache is up +1---Put item, not yet in local and server cache+1-+1 (+2 with HA)+1Get item from local cache----Get item from server cache, local cache has expired+1+1--Get item, local and server cache has expired+1+1-+1
I hope this is helpful for you when you are analyzing the caching behavior for your application.