1

私は、この Windows Azure Blob ストレージに少し行き詰まっています。

ファイルパス(ローカル)を受け取るコントローラーがあります。

したがって、Webページで次のようなことを行います。

http:...?filepath=C:/temp/myfile.txt

Web サービスで、このファイルを取得して BLOB サービスに配置したいと考えています。ローカルで起動すると問題はありませんが、公開するとファイルを取得する方法がありません。私はいつも得る: エラーが発生しました: パス 'C:/temp/myfile.txt' の一部が見つかりませんでした。

誰かが私を助けることができますか?解決策はありますか?

4

2 に答える 2

1

まず、適切なヘルプを得るには、問題についてより適切な説明を提供する必要があります。「オン・ザ・ウェブ・サービス」とはどういう意味ですか? あなたの部分的な問題の説明と一致しているように見えるのは、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 Role コードでは、C:\ ドライブに書き込むアクセス権がないため、ファイルが存在せず、エラーが発生します。最善の策は、Azure ローカル ストレージを使用してそこにコンテンツを書き込み、次にローカル ストレージを使用してファイルを読み取り、Azure BLOB をアップロードすることです。Azure ローカル ストレージは、Web ロールから任意のコンテンツを書き込むように設計されています (書き込み権限があります)。

最後に、Azure VM は永続化されていないため、VM の任意の場所に書き込むソリューションを用意することは適切ではなく、可能であればシステム メモリを使用せずに Azure ストレージに直接書き込む必要があるため、アプリケーションの設計にも懸念があります。

于 2012-05-15T14:55:50.400 に答える
0

ファイルが Azure サーバー上に存在することを確認しましたか?

于 2012-05-15T13:53:28.257 に答える