2016-05-14 25 views
3

我嘗試使用Cloud Service和Azure SDK 2.9將演示應用程序發佈到Windows Azure。在我的服務中,我有一個Web角色和一個工作者角色。兩者都使用Azure存儲。一切工作在本地託管(模擬器)的罰款,但是當我嘗試發佈的應用程序,我得到Web角色出現以下錯誤:發佈Azure SDK存儲程序集時未發現異常

未處理的異常:System.Runtime.Serialization.SerializationException,
詳細信息:異常:無法找到程序集'Microsoft.WindowsAzure.Storage,Version = 7.0.0.0,Culture = neutral,PublicKeyToken = 31bf385)

在Worker Role項目中,一切正常,它也使用Storage。

我試圖將Web角色轉換爲標準的Web應用程序,一切正常,但我想在雲應用程序上解決這個問題。

我已經試過什麼:

  • 在引用設置本地副本真
  • 改變.Net框架4.5.1和4.6(默認4.5)
  • 移除並再次添加存儲參考
  • 通過重新安裝所有的Nu​​Get庫
  • 出版了存儲7.0和6.2
  • 通過VS和門戶(包)公佈
  • 添加dependentAssembly到web.config中

在我的VM我查了bin文件夾,Microsoft.WindowsAzure.Storage存在。

任何想法是什麼錯?

+0

我在Github上看到同樣的問題:https://github.com/Azure/azure-storage-net/issues/269。似乎其他人也遇到類似的問題。你可能想在那裏提出一個問題。 HTH。 –

回答

1

兩天後,我找到了解決方案。 在我WebRole.cs我有這樣的:

public override bool OnStart() 
{ 
    var csa = CloudStorageAccount.Parse(RoleEnvironment 
     .GetConfigurationSettingValue("Credentials")); 
    var cqc = csa.CreateCloudQueueClient(); 
    var inputQueue = cqc.GetQueueReference("inputqueue"); 
    inputQueue.CreateIfNotExists(); 
    var outputQueue = cqc.GetQueueReference("outputqueue"); 
    outputQueue.CreateIfNotExists(); 
    var ctc = csa.CreateCloudTableClient(); 
    var ct = ctc.GetTableReference("last"); 
    ct.CreateIfNotExists(); 
    return base.OnStart(); 
} 

當我搬到例如這個初始化到其他地方到RouteConfig.cs一切正常。我不知道爲什麼,但在發佈到Azure之後,每個對WebRole存儲的引用都會引發錯誤。 我希望這個解決方案有幫助。