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
- Убедитесь, что в вашей ссылке на сборку указан COPY LOCAL
- Также убедитесь, что у вас нет ссылок на служебную шину dll в верхних проектах, которые НЕ копируют локальные (это может быть вашей проблемой, если вы проверили 1 выше)
Вы можете проверить дерево CSX для своей папки сборки Azure, чтобы увидеть, копируется ли сборка в окончательный пакет. Это намного быстрее, чем загрузка в Azure или запуск разработки.
Это должно решить вашу проблему