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

Foi útil?

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

  1. Verifique se sua referência à Assembléia especifica a cópia local
  2. 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top