2014-10-11 123 views
0

我有一個本地.NET/IIS應用程序,爲此我開發了新功能以允許用戶將圖像上載到Azure Blob存儲。在我的開發環境中,一切正常,現在我已準備好將該應用程序部署到我的生產環境中。從本地IIS應用程序訪問Azure Blob存儲

我不知道如何做到這一點。可能嗎?如果是這樣,我該怎麼做?

更詳細一點:

  • 我的環境是Windows Server 2008 R2中運行IIS 7.5
  • 的服務連接到實際Azure的Blob存儲在雲中,我可以在網上保存的圖像(即,我使用Azure SDK 3.3中的Azure開發計算/存儲模擬器從我的開發環境(VS 2013 with IIS Express)登錄到Azure門戶上的帳戶,並且可以看到上載到我的測試容器中的圖像)。
  • 我無法使用IIS 7.5在我的開發框中使用解決方案。
  • 我試過從我的解決方案中的「構建」菜單中「部署」解決方案,但沒有任何反應。嘗試在我的解決方案中「發佈」Cloud Service項目只是讓我到Azure在線發佈它。那是什麼使我的解決方案工作的必要條件?發佈Cloud Service項目?

感謝。

回答

0

我認爲我的問題的答案基本上是完全忽略雲服務項目,只需部署底層網站,就像您通常部署它,並進行兩項小修改即可。

  1. 添加您的Azure的斑點連接字符串在Web.config文件中,這樣就可以從你的項目訪問,而無需引用雲存儲帳戶設置(即CloudConfigurationManager.GetSetting等)。
  2. 在Web.config文件,註釋掉AzureDiagnostics跟蹤監聽器:

    <listeners> 
    <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics"> 
        <filter type="" /> 
    </add> 
    

使用這兩項修改,我能到我的網站的底層部署到我的本地IIS而仍然從我的本地解決方案訪問Azure Blob存儲。

我仍然不完全確定我是否甚至需要或仍然需要我的解決方案中的雲服務項目,但我現在保留它。

希望這個問題/答案能夠幫助其他人搜索混合內部部署和Azure解決方案的文檔,因爲在這個主題上似乎幾乎沒有任何內容。

+0

正如我在回答中所說的,您不需要Cloud項目。如果您要將Web應用程序或服務部署到Azure,則可以使用Cloud項目。 – 2014-10-13 13:21:23

0

如果您擁有的是內部部署的Web應用程序,那麼您不應該使用Cloud Service項目(這是一個最終作爲Azure Cloud Service部署的項目)。如果你想在網絡服務器上進行blob上傳,你只需要將Azure Storage NuGet package添加到你的web項目中,並使用存儲庫來上傳blob(假設你已經有了這樣的代碼,因爲你說的東西在你的工作中開箱)。

+0

您是如何得出OP不應該使用雲服務的結論的?與虛擬機部署一樣,這是一個可行的選擇,就像網站部署一樣。我們對應用程序的總體信息和整體架構的信息幾乎爲零,並且在考慮選擇哪個選項時涉及許多因素。 – 2014-10-12 13:15:11

+0

不幸的是,本地訪問Azure服務的文檔非常有限。我認爲你可能是對的,但是我開始走這條路,因爲看起來,根據微軟和其他地方的所有文檔,我需要一個雲服務項目。似乎解決上述問題的方法只是使用底層網站項目,忽略雲服務項目,同時對網站項目進行一些小修改 - 當我有這個問題時,我會發布這個問題的答案再過幾分鐘。 – JGoldman 2014-10-12 14:08:52

+0

@David OP說應用程序是需要訪問Azure blob存儲的內部Web應用程序。它沒有說應用程序需要遷移到雲,因此不需要Cloud Service。這裏唯一需要的Azure資源是存儲帳戶。 – 2014-10-13 13:12:25