Fehler „Serverauflistung kann nicht leer sein“ bei Verwendung von Azure AppFabric Caching in einer Winforms-Anwendung
Veröffentlichung des Originalartikels: 27.10.2011
Ich hatte ein Problem, auf das anscheinend mehrere Leuten bei Verwendung des AppFabric Caching-Features von Windows Azure gestoßen sind. Dabei handelt es sich um die endgültige Version des Cachingmechanismus, der früher als „Velocity“ bezeichnet wurde. Wenn ein Problem mit der verwendeten Caching Factory auftritt, lautet die ausgelöste Fehlermeldung meist so ähnlich wie „server collection cannot be empty“. Leider ist dies ein weit verbreiteter Fehler, der oft sehr schwer zu diagnostizieren ist. In diesem Fall war es noch unbegreiflicher – ich hatte eine kompilierte eigenständige Assembly, die den Cache verwendet. Wenn ich diese Assembly von einer Azure-Arbeitsrolle aus aufrief, trat kein Fehler auf. Wenn ich jedoch einen Verweis auf die Assembly zu meiner Winforms-Testanwendung hinzufügte und versuchte sie auszuführen, trat der gefürchtete Fehler auf.
Nachdem ich ziemlich lange herumgestochert, mir die Haare büschelweise ausgerupft und mein Gewissen überprüft hatte (was mache ich hier eigentlich?), bin ich schließlich auf die Lösung gestoßen. Obwohl meine Winforms-Anwendung die Caching-Klassen nicht direkt aufrief, war sie trotzdem der Hostprozess. Das heißt, alle Cachekonfigurationseinträge in meiner Arbeitsrollenanwendung mussten zur Datei app.config meiner Winforms-Anwendung hinzugefügt werden. Nachdem ich sie hinzugefügt hatte, hat alles problemlos funktioniert.
Ich denke dies ist ein ziemlich gängiges Szenario, aber weil der Fehler so schwer zu finden ist, wollte ich ihn hier für andere posten, die im gleichen Dilemma stecken.
Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Server Collection Cannot Be Empty Error When Using Azure AppFabric Caching in Winforms Application.