8

WindowsAzureにmvc-3アプリケーションをデプロイしました。私のアプリケーションでは、ファイルをアップロードしてApp_Data/DownloadedTemplatesフォルダーに保存しています。

  var path = Server.MapPath("~App_Data/DownloadedTemplates");

私のアプリケーションは現在、ステージング環境で実行されています。ファイルをアップロードすると、ブラウザに例外が表示されます。

パス'F:\ sitesroot \ 0 \ App_Data \ DownloadedTemplates\B.htm_2c77cdfd-c597-4234-bd1e-29ca0a9b8d0e.htm'の一部が見つかりませんでした。

Server.MapPathサーバー上のApp_Dataのパスを見つけるために使用していますが、なぜこの例外が発生するのでしょうか。誰かが私に問題を教えてもらえますか?

4

1 に答える 1

8

Windows Azure アプリケーションでこれを行うべきではありません。Windows Azure では、一時ファイルをディスクに保存するためにLocalResources (専用ディスクの予約領域) を使用する必要があります。これは、データを保存する唯一の場所です。

このような LocalResource にアクセスする方法の例を次に示します (名前とサイズは VS プロジェクトで構成できます)。

LocalResource localResource = RoleEnvironment.GetLocalResource("DownloadedTemplates");

LocalResources のデータが消える可能性があることを忘れないでください (たとえば、マシンがクラッシュした場合)。本当にデータを保持したい場合は、Windows Azure Blob Storage を使用する必要があります。

于 2012-07-27T12:47:49.880 に答える