Azure: não foi possível carregar arquivo ou montagem 'Microsoft.ServiceBus
-
27-09-2019 - |
Pergunta
Eu tenho um serviço de tecido de aplicativo que quero testar. (http://xxx.cloudapp.net:8081/service.svc).
Criei um aplicativo de console e adicionei uma referência de serviço ao serviço e recebi o seguinte erro:
Não foi possível carregar arquivo ou montagem 'Microsoft.ServiceBus, versão = 1.0.0.0, cultura = neutro, publicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.
Adicionei uma referência ao Microsoft.ServiceBus de C: Arquivos de Programas (x86) Windows Azure Platform Appfabric SDK V1.0 Assemblies Net4.0
Defino todos os assemblies no meu projeto para copiar local = true, conforme sugerido aqui:http://msdn.microsoft.com/en-us/library/ee706702.aspx
Due diligence adicional: abri o Microsoft.ServiceBus no refletor do Red-Gate e confirmei que é a versão correta. Apenas para chutes, também adicionei referências a cada assembléia referenciada no refletor e defina todas as referências para copiar local = true.
Alguma outra idéia?
…Peter
Solução
Quando você faz referência a Microsoft.ServiceBus.dll, faça referência a ele no local de instalação, por exemplo,
C: Arquivos de Programas (x86) Windows Azure Platform Appfabric
Sdk v1.0 Assemblies net4.0 microsoft.servicebus.dll
... Não do GAC e defina cópia local como true.
Você precisa fazer isso em tudo o que está implantando no Azure; O Microsoft.ServiceBus.dll precisa embalado com seu projeto, porque não está disponível por padrão no Azure.
Se você iniciar o Fiddler, verá um erro 500 ao chamar o serviço. Isso prova que a exceção não está no seu aplicativo de chamada.
Outras dicas
Certifique -se de alterar a estrutura de destino (Propriedades do projeto/guia Aplicativo) de '.NET Framework 4 Perfil do cliente' para '.NET Framework 4'. Encontrei um post semelhante e foi isso que me ajudou. Acredito que tenha que ser com o fato de que o Microsoft.ServiceBus não é suportado pelo perfil do cliente do .NET 4.
O ServiceBus DLL não está instalado em caixas do Azure
- Verifique se sua referência à Assembléia especifica a cópia local
- Além disso, verifique se você não tem referências à DLL de barramento de serviço em projetos superiores que não copiam local (este pode ser o seu problema se você verificou 1 acima)
Você pode verificar a árvore CSX para obter a pasta do Azure Build para ver se a montagem está sendo copiada no pacote final. Isso é muito mais rápido do que fazer upload para o Azure ou iniciar o tecido dev.
Isso deve resolver seu problema