ОБНОВИТЬ
Вот ссылка на код пользовательского провайдера - http://www.gurpreetsohal.com/configurationprovider.zip< /а>
Мне удалось использовать рефлектор, чтобы перейти дальше в библиотеки DLL Microsoft AppFabric, и я нашел место, где возникает исключение.
Исключение вызывает метод WaitForStatus — служба определенно находится в начальном состоянии, просто она никогда не достигает запущенного состояния в течение времени ожидания.
Значение времени ожидания по умолчанию составляет 60 секунд. Я увеличил это до 10 минут, та же проблема.
Сценарий:
1) Работа в среде рабочей группы. Это означает, что AppFabric не позволит источнику SQL Server хранить файл конфигурации, поэтому вам остается использовать файловый ресурс или создать собственный поставщик конфигурации.
Я решил сделать последнее и написал реализацию, используя предоставленный интерфейс ICustomProvider, используя blobstore.
Все это работает нормально, конфигурация может быть создана/изменена и удалена корректно - мастер настройки работает нормально.
Проблема в том, что когда я запускаю Start-CacheCluster в powershell, служба кэширования AppFabric зависает в состоянии Starting.
Затем Powershell выдает ошибку:
Однако, если я вручную запускаю службу из services.msc - она работает без проблем, довольно много моментально.
Чтобы убедиться, что это не проблема среды, я настроил AppFabric на использование файлового ресурса для конфигурации, и он отлично работал без каких-либо проблем.
Затем я начал смотреть, что на самом деле делает эта команда powershell, и декомпилировал dll.
Это привело меня к следующему:
currentAdmin.StartCluster (новый ProgressDelegate (это, (IntPtr) this.StartClusterDelegate), новый WriteErrorDelegate (это, (IntPtr) this.WriteErrorRecord), this.QuorumTimeout, this.HostTimeout);
Я не могу шагнуть дальше и застрял.
Я пробовал как таблицы Azure, так и хранилище BLOB-объектов, чтобы попытаться заставить это работать.
Помощь!!!!!