Azure: не удалось загрузить файл или сборку 'Microsoft.ServiceBus

У меня есть сервис приложений, который я хочу протестировать. ( http://xxx.cloudapp.net:8081/service.svc).
Я создал консольное приложение, добавил сервисную ссылку на сервис и получил следующую ошибку:

Не удалось загрузить файл или сборку "Microsoft.ServiceBus, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35" или одна из ее зависимостей. Система не может найти указанный файл.

Я добавил ссылку на Microsoft.ServiceBus из C:\Program Files (x86)\Windows Azure для платформы AppFabric SDK\V1.0\Assemblies\NET4.0

Я установил для всех сборок в моем проекте значение "Копировать локально = True", как предлагается здесь: http://msdn.microsoft.com/en-us/library/ee706702.aspx

Дополнительная проверка: Я открыл Microsoft.ServiceBus в отражателе Red-Gate и подтвердил, что это правильная версия. Просто для удобства я также добавил ссылки на каждую сборку, на которую есть ссылки в отражателе, и установил для всех ссылок значение local = true.

Есть другие идеи?

…Питер

3 ответа

Решение

Когда вы ссылаетесь на Microsoft.ServiceBus.dll, ссылаетесь на него из места установки, например,

C: \ Program Files (x86) \ Платформа Windows Azure AppFabric
SDK \ V1.0 \ Сборки \ NET4.0 \ Microsoft.ServiceBus.dll

... не из GAC, и установите для параметра Копировать локально значение true.

Вы должны делать это во всем, что вы развертываете в Azure; Microsoft.ServiceBus.dll должен быть упакован вместе с вашим проектом, потому что он не доступен по умолчанию в Azure.

Если вы запустите Fiddler, вы увидите ошибку 500 при вызове сервиса. Это доказывает, что исключение отсутствует в вашем вызывающем приложении.

Убедитесь, что вы изменили Targe t Framework (Свойства проекта / вкладка "Приложение") с "Профиль клиента.NET Framework 4" на ".NET Framework 4". Я нашел похожий пост, и это помогло мне. Я считаю, что это связано с тем, что Microsoft.ServiceBus не поддерживается клиентским профилем.NET 4.

ServiceBus dll не установлен на блоках Azure

  1. Убедитесь, что в вашей ссылке на сборку указан COPY LOCAL
  2. Также убедитесь, что у вас нет ссылок на служебную шину dll в верхних проектах, которые НЕ копируют локальные (это может быть вашей проблемой, если вы проверили 1 выше)

Вы можете проверить дерево CSX для своей папки сборки Azure, чтобы увидеть, копируется ли сборка в окончательный пакет. Это намного быстрее, чем загрузка в Azure или запуск разработки.

Это должно решить вашу проблему

Другие вопросы по тегам