2010-10-04 21 views
5

Mam usługę drukowania aplikacji, którą chcę przetestować. (http://xxx.cloudapp.net:8081/service.svc).
I stworzył aplikację konsoli i dodaje odniesienie do usług serwisu i uzyskałem następujący błąd:Azure: Nie można załadować pliku lub zespołu "Microsoft.ServiceBus

Could not load file or assembly 'Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

I dodaje odniesienie do Microsoft.ServiceBus z C: \ Program Files (x86) \ platforma Windows Azure AppFabric SDK \ v1.0 \ zwoje \ NET4.0

ustawić wszystkie zespoły w moim projekcie Kopiowanie Local = True, jak sugeruje tutaj: http://msdn.microsoft.com/en-us/library/ee706702.aspx

dodatkowe Due diligence: Otworzyłem Microsoft.ServiceBus na czerwono reflektor w lusterku i potwierdził, że jest to poprawna wersja. Tylko dla kopnięć, dodałem również odnośniki do każdego zespołu, do którego odwołuję się w reflektorze i ustawiłem wszystkie odniesienia do kopiowania local = true.

Jakieś inne pomysły?

... Peter

+0

Czy błąd jest rzucony przez serwis po zgłoszeniu go lub przez aplikację konsoli przy próbie uruchomienia to? – knightpfhor

+0

Jest wyrzucana z aplikacji konsoli, gdy próbuję wywołać jedną z metod w usłudze. –

Odpowiedz

3

Kiedy można odwołać Microsoft.ServiceBus.dll, odwołać go z lokalizacji instalacji, np

C:\Program Files (x86)\Windows Azure platform AppFabric
SDK\V1.0\Assemblies\NET4.0\Microsoft.ServiceBus.dll

... nie od GAC i ustawić Kopia lokalna na prawdę.

Musisz to zrobić niezależnie od tego, co wdrażasz na platformie Azure; plik Microsoft.ServiceBus.dll musi być spakowany z projektem, ponieważ nie jest domyślnie dostępny na platformie Azure.

Po uruchomieniu gry Fiddler widzisz błąd 500 podczas wywoływania usługi. Dowodzi to, że wyjątek nie znajduje się w Twojej aplikacji telefonicznej.

1

dll ServiceBus nie jest zainstalowany na polach Azure

  1. Upewnij się, że odniesienie do Określa montażowych KOPIA LOCAL
  2. także upewnić się, że nie mają odniesienia do magistrali usług dll w wyższych projektach, które NIE kopiują lokalnie (może to być Twój problem, jeśli zweryfikowaliśmy 1 powyżej)

Możesz sprawdzić drzewo CSX dla y nasz folder kompilacji azure, aby sprawdzić, czy zespół jest kopiowany do ostatecznego pakietu. Jest to o wiele szybsze niż przesyłanie do lazuru lub uruchamianie materiału deweloperskiego.

To powinno rozwiązać twój problem

+0

Dzięki Rajesh za odpowiedź. Nie rozumiem, co masz na myśli przez ServiceBus nie jest zainstalowany na pudełkach Azure. Sposób, w jaki to zrozumiałem, nie miał sensu, żeby MS nie instalowało wymaganej biblioteki DLL dla Azure na swoich własnych skrzynkach.Okazuje się, że muszę dodać go do projektu lazurowego, który zostanie zainstalowany na lazurowych pudełkach. –

4

Należy zmienić docelową strukturę (Właściwości projektu/zakładka Aplikacja) z "Profil klienta .NET Framework 4" na ".NET Framework 4". Znalazłem podobny wpis i to mi pomogło. wierzę, że musi się z tym, że Microsoft.ServiceBus nie jest obsługiwany przez profil klienta .NET 4.

+0

+1 Potwierdzam, że to zadziałało – SeanCocteau

Powiązane problemy