none
CloudBlobクラスのDownloadToFileでエラーが発生する。 RRS feed

  • 質問

  • いつもお世話になっております。

    CloudBlobクラスのDownloadToFileメソッドで以下のエラーが発生するのですが、エラーの原因について分かる方がいらっしゃいましたら教えて頂けないでしょうか?

    実行しようとしていることは、Storage Blobに格納しているファイルをローカルストレージ内へ保存しようとしています。

    余談ですが、TomcatWarFileFromStorageSolutionAcceleratorというWorker RoleでTomcatを起動させるツール?を実行した時にこのエラーが出ています。

    TomcatWarFileFromStorageSolutionAccelerator:http://archive.msdn.microsoft.com/azuretomcat/Release/ProjectReleases.aspx?ReleaseId=3881

    <環境>

    Windows 7 Ultimate SP1

    .NET Framework 4

    Visual Stadio 2010 Ultimate

    開発ストレージを使用し、デバッグ実行。

    <ソース>

    public static void DownloadFileFromBlob(string containerName, string blobName, string destinationPath)
            {
                CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
                CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName);
                CloudBlob blob = blobContainer.GetBlobReference(blobName);

                // OK
                blob.DownloadToFile(@"C:\TomcatTest.war");
              
                // エラー発生
                blob.DownloadToFile(destinationPath);

       // 説明 ローカルストレージにファイルをダウンロードしようとしている。
       // destinationPath = C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\TomcatLocation\webapps\TomcatTest.war

            }
        }

    <エラー>

    [fabric] Role Instance: deployment(1154).TomcatRole.TomcatWorKerRole.0
    [fabric] Role state Busy
    [runtime] Role entrypoint . CALLING   OnStart()
    Information: C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor
    Information: C:\TomcatWarFileFromStorageSolutionAccelerator\Tomcat.csx\roles\TomcatWorKerRole\diagnostics\x64\monitor\MonAgentHost.exe -LocalPath "C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor" -StaticConfigFile "C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor\Configuration\mastaticconfig.xml" -ConfigFile "C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor\Configuration\maconfig.xml" -ShutDownEvent WADDM-ShutDown-eb7b0832a5d34eaab34515a772f7ad4a -InitializedEvent WADM-StartUp-eb7b0832a5d34eaab34515a772f7ad4a -parent 5016 -events
    [runtime] Role entrypoint . COMPLETED OnStart()
    [runtime] Role entrypoint . CALLING   Run()
    Information: Tomcat entry point called
    [WaWorkerHost.exe] 項目は既に追加されています。辞書のキー: 'catalina_home'  追加されるキー: 'catalina_home'
    [WaWorkerHost.exe] Getting Configuration setting for 'WarFileTargetFileName'
    [WaWorkerHost.exe] Retrieved value for 'WarFileTargetFileName' is 'TomcatTest.war'
    [WaWorkerHost.exe] Downloading war file failed with exception:パス 'C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\TomcatLocation\webapps\TomcatTest.war' の一部が見つかりませんでした。
    [runtime] Unhandled Exception:
    System.IO.DirectoryNotFoundException: パス 'C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\TomcatLocation\webapps\TomcatTest.war' の一部が見つかりませんでした。
       場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       場所 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
       場所 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
       場所 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
       場所 Microsoft.WindowsAzure.StorageClient.CloudBlob.DownloadToFile(String fileName, BlobRequestOptions options)
       場所 Tomcat.BlobHelper.DownloadFileFromBlob(String containerName, String blobName, String destinationPath) 場所 C:\TomcatWarFileFromStorageSolutionAccelerator\TomcatWorkerRole\WarFileDownloader.cs:行 56
       場所 Tomcat.WarFileDownloader.DownloadToWebApps(String blobContainerConfigurationSetting, String blobNameConfigurationSetting, String destinationWarFileNameConfigurationSetting) 場所 C:\TomcatWarFileFromStorageSolutionAccelerator\TomcatWorkerRole\WarFileDownloader.cs:行 25
       場所 Tomcat.RunTomcat.StartTomcat(String tomcatLocation, String tomcatPort) 場所 C:\TomcatWarFileFromStorageSolutionAccelerator\TomcatWorkerRole\RunTomcat.cs:行 42
       場所 Tomcat.WorkerRole.Run() 場所 C:\TomcatWarFileFromStorageSolutionAccelerator\TomcatWorkerRole\WorkerRole.cs:行 27
       場所 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRoleInternal()
       場所 Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.<StartRole>b__1()
       場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       場所 System.Threading.ThreadHelper.ThreadStart()
    Information: C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor
    Information: C:\TomcatWarFileFromStorageSolutionAccelerator\Tomcat.csx\roles\TomcatWorKerRole\diagnostics\x64\monitor\MonAgentHost.exe -LocalPath "C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor" -StaticConfigFile "C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor\Configuration\mastaticconfig.xml" -ConfigFile "C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\DiagnosticStore\Monitor\Configuration\maconfig.xml" -ShutDownEvent WADDM-ShutDown-35a4271f427040f68cd1d3f7ec001fc4 -InitializedEvent WADM-StartUp-35a4271f427040f68cd1d3f7ec001fc4 -parent 5016 -events
    [fabric] Role state Started

    2011年4月20日 2:58

回答

  • 下記の例外を見ますと、ファイルを保存しようとしているフォルダが無いと怒っているのだと思います。
    まず、ファルダーを作成しないといけないのでは?

    [WaWorkerHost.exe] Downloading war file failed with exception:パス 'C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\TomcatLocation\webapps\TomcatTest.war' の一部が見つかりませんでした。

    2011年4月20日 3:21

すべての返信

  • 下記の例外を見ますと、ファイルを保存しようとしているフォルダが無いと怒っているのだと思います。
    まず、ファルダーを作成しないといけないのでは?

    [WaWorkerHost.exe] Downloading war file failed with exception:パス 'C:\Users\Administrator\AppData\Local\dftmp\s0\deployment(1154)\res\deployment(1154).TomcatRole.TomcatWorKerRole.0\directory\TomcatLocation\webapps\TomcatTest.war' の一部が見つかりませんでした。

    2011年4月20日 3:21
  • orz_yuki様、返信ありがとうございます。

    >下記の例外を見ますと、ファイルを保存しようとしているフォルダが無いと怒っているのだと思います。
    >まず、ファルダーを作成しないといけないのでは?

    その通りでした。フォルダを作成するとエラーがでずに正常に動作しました。

    フォルダがなければ勝手に作成してくれるものだと勘違いしていました・・・・

    どうもありがとうございました!!!

     

    2011年4月20日 7:50