2012-05-15 98 views
1

我有點卡住了這個Windows Azure Blob存儲。本地文件blob保存

我有一個接收文件路徑(本地)的控制器。

所以在網頁上我做了什麼魔神此:

的http:...文件路徑= C:/temp/myfile.txt

在Web服務,我想這個文件,把它放在blob服務上。當我在本地啓動它時沒有問題,但是當我發佈它時,無法獲取文件。我總是得到: 遇到錯誤:找不到路徑'C:/temp/myfile.txt'的一部分。

有人可以幫助我。有解決方案嗎?

回答

1

首先,我會說要得到適當的幫助,你需要提供更好的描述你的問題。 「在Web服務上」是什麼意思?它是一個WCF Web角色,它似乎與您的部分問題描述相匹配。但是,如果添加,大多數Web服務使用http://whatever.cloudapp.net/whatever.svc以及http://whatever.cloudapp.net/whaterever.aspx?whatever。你有沒有在你的應用程序中做過類似的事情?

您還提到了代碼中的控制器,這讓我認爲這是一個基於MVC的Web角色應用程序。

我在寫上面的信息來幫助你下次更好地制定你的問題。

最後根據您提供的內容,您正在從本地文件系統(C:\ temp \ myfile.txt)中讀取文件並上傳到Azure Blob。這將在計算模擬器中起作用,並且肯定會在Windows Azure中失敗,因爲:

在您的Web角色代碼中,您將無法訪問C:\驅動器上的文件,這就是爲什麼文件不存在並且出現錯誤。最好的辦法是使用Azure本地存儲在其中寫入任何內容,然後使用本地存儲來讀取文件,然後上載Azure Blob。 Azure本地存儲設計用於編寫來自Web角色的任何內容(您將擁有寫入權限)。最後,我擔心你的應用程序設計也是因爲Azure虛擬機沒有被保存,所以有一個解決方案可以在虛擬機中的任何地方寫入,這並不是很好,你可能需要直接寫入Azure存儲而不使用系統內存,如果反正是可能的。

+0

我想使用本地存儲,但有一件事我不明白。當我調用Rootpath時,它會返回一個文件的路徑,但我的本地計算機中沒有這樣的文件。 – MaT

0

您是否驗證Azure服務器上存在該文件?

+0

我不想從Azure blob存儲中獲取文件。我想獲取本地計算機文件並將其放入Blob存儲中。 – MaT

+0

是否必須在查詢字符串上指定文件的完整路徑?理想情況下,您可以使用Windows Azure中提供的本地存儲選項來引用本地文件。 – mcollier

+0

是的。如果你想到HttpPostedFileBase我不能使用這個。我將搜索本地存儲選項,但我已經發現並不是很好。 – MaT