2010-10-04 72 views
5

我有我想測試的應用程序結構服務。 (http://xxx.cloudapp.net:8081/service.svc)。
我創建了一個控制檯應用程序,並增加了服務參考服務,並得到了以下錯誤:Azure:無法加載文件或程序集'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.

我從下加入一個參考Microsoft.ServiceBus:\程序文件(x86)\ Windows Azure平臺AppFabric中SDK \ V1.0 \組件\ NET4.0

我設置的所有組件在我的項目複製本地=真,因爲這裏建議: http://msdn.microsoft.com/en-us/library/ee706702.aspx

額外的盡職調查: 我在紅打開Microsoft.ServiceBus門的反射器和證實它是正確的版本。爲了踢球,我還添加了對反射器中引用的每個程序集的引用,並將所有引用設置爲copy local = true。

還有其他想法嗎?

...彼得

+0

當您嘗試運行時調用它或通過控制檯應用程序引發服務錯誤它? – knightpfhor 2010-10-04 23:03:33

+0

當我嘗試調用服務中的某個方法時,它正從控制檯應用程序拋出。 – 2010-10-05 14:19:39

回答

3

當您引用Microsoft.ServiceBus.dll,從安裝位置,如引用它,

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

...不是從GAC,並設置複製本地爲真。

無論您在部署到Azure中,您都需要執行此操作; Microsoft.ServiceBus.dll需要與您的項目一起打包,因爲它在默認情況下在Azure中不可用。

如果您啓動了Fiddler,則在調用該服務時會看到500錯誤。這證明這個異常不在你的調用應用程序中。

1

ServiceBus DLL沒有在Azure上盒安裝

  1. 確保您參考組件指定複製本地
  2. 另外,還要確保你沒有到服務總線引用在不復制本地的上層項目中(這可能是你的問題,如果你已經驗證1以上)

你可以檢查CSX樹的y我們的azure生成文件夾來查看程序集是否被複制到最終包中。這比上傳到Azure或啓動開發結構要快得多。

這應該解決您的問題

+0

感謝Rajesh的迴應。我不明白你的意思是什麼ServiceBus沒有安裝在Azure盒子上。按照我的理解,MS不會在自己的盒子上爲Azure安裝必需的dll。事實證明,我需要將其添加到安裝在天藍色盒子上的天藍色項目。 – 2010-10-07 14:43:45

4

確保將「目標框架」(項目屬性/應用程序選項卡)從「.NET Framework 4 Client Profile」更改爲「.NET Framework 4」。 我發現了一個類似的帖子,這是幫助我。 我相信這是因爲.NET 4的客戶端配置文件不支持Microsoft.ServiceBus。

+0

+1可以確認這對我有效 – SeanCocteau 2012-08-24 09:09:13

相關問題