Не удалось загрузить сборку приемника, отсутствует перезапуск службы?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/67113

Вопрос

Я активирую функцию с помощью PowerShell, и каждый раз «время от времени» она выходит из строя с ошибкой «Не удалось загрузить сборку приемника».Кажется, он жалуется, потому что какая-то служба или приложение не может найти dll в GAC, однако я каждый раз проверял, и dll всегда правильно развертывается в GAC.Мой сценарий PowerShell работает следующим образом:

  1. Удалите все соответствующие WSPS (удаление из GAC).
  2. Перезапуск:SPAdminV4, SPTimerV4, SPUserCodeV4 и IISReset
  3. Установите все соответствующие WSPS, включая тот, который должен быть целью приемника событий.
  4. Перезапуск:SPAdminV4, SPTimerV4, SPUserCodeV4 и IISReset
  5. Активируйте функцию (в области веб-приложения)

Я пытался приостановить выполнение сценария между шагами 3 и 4 и между шагами 4 и 5, чтобы убедиться, что DLL присутствует и всегда есть.Я проверил правильность функции xml ReceiverAssembly, но не думаю, что это проблема, поскольку в большинстве случаев она работает.

Я могу успешно запустить сценарий несколько раз, и внезапно он терпит неудачу.Есть ли какая-то служба, которую мне нужно перезапустить в дополнение к iisreset?

Редактировать Дополнительные сведения:

  • Существует 10 wps, один из которых содержит функцию области веб-приложения.
  • Я не жду какое-то время после сброса, так как думал, что перезагрузка завершится после возврата iisreset.
  • Ошибка возникает, когда SharePoint пытается вызвать пользовательский приемник событий FeatureActivated в одном из файлов wsps.
  • Частичная трассировка стека (сокращенно):Системное исключение:Не удалось загрузить сборку приемника [полная подпись сборки приемника] или одну из ее зависимостей.Система не может найти указанный файл.System.IO.FileNotFoundException:Не удалось загрузить файл или сборку [полная подпись сборки получателя]

редактировать:Добавлены шаги по переработке сервиса.

(Я не могу опубликовать точный код, поскольку система находится в сети с ограниченным доступом)

Это было полезно?

Решение 2

Я решил проблему.Кажется, мне не нужно сбрасывать IIS или SPAdminV4 во время развертывания.Удаление всех ссылок на это из моего сценария PowerShell решило проблему.

Я также должен отметить, что ожидание 5 секунд после сброса SPAdminV4 перед активацией этой функции также позволило избежать ошибки.

Ссылка: http://blog.falchionconsulting.com/index.php/2011/04/deploying-sharepoint-2010-solution-package-using-powershell-revisited/

Другие советы

Часто это происходит из-за того, что SPTimerV4 содержит кэшированную ссылку на ваше решение .dll:s.

попробуй сделать

net stop SPTimerV4
net start SPTimerV4

в PowerShell или cmd, если вы отозвали свой .wsp перед его переустановкой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top