Azure: не удалось загрузить файл или сборку 'Microsoft.ServiceBus - PullRequest
5 голосов
/ 05 октября 2010

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

Не удалось загрузить файл или сборку 'Microsoft.ServiceBus, Version = 1.0.0.0, Culture = нейтральный, 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 ]

4 голосов
/ 29 ноября 2010

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

3 голосов
/ 07 октября 2010

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

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

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

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

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

1 голос
/ 05 октября 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...