none
Azure worker roleにてテキストファイル生成ができない? RRS feed

  • 質問

  • 質問を見てくださりありがとうございます。

    webroleとworkerroleを使ったプログラムを作成中です。

    画面上でテキストファイルと任意の文字列を指定し、コンテナ領域にテキストファイルをアップロードし、

    worker role上で任意の文字列をテキストファイルの末尾に加え、別のコンテナに再アップロードし、

    ダウンロードできるようにするという物です。

    webroleからアップロードしたファイルはちゃんと中身を見ることができるのですが、

    workerroleから再アップロードしたファイルは白紙になってしまいます。

     

    お手数ですがお知恵を拝借したいです。よろしくお願い致します。

    2011年1月20日 2:59

回答

  • こんにちは。

    ちょっと、時間がなくて今から再現確認が出来ないのが申し訳ないのですが、通常そういった作業は出来るはずです。

    まず確認ですが、コンテナとはブロブストレージのことでしょうか?それとも、なにか別のものでしょうか?

    あとWorkerRoleではコンテナのファイルを取得できているのでしょうか?

    また、Workerロール単独でローカルにあるファイルをアップロードするコードのみで動作させた場合はどのような動作をするのでしょうか?

    また、ローカルでのエミュレータの動作でしょうか?それともAzureにアップロードしたら動かなくなったのでしょうか?

    すいませんが、もう少し現象の切り分けをお願いします。

    • 回答としてマーク 白川雪 2011年1月21日 1:28
    2011年1月20日 3:25

すべての返信

  • こんにちは。

    ちょっと、時間がなくて今から再現確認が出来ないのが申し訳ないのですが、通常そういった作業は出来るはずです。

    まず確認ですが、コンテナとはブロブストレージのことでしょうか?それとも、なにか別のものでしょうか?

    あとWorkerRoleではコンテナのファイルを取得できているのでしょうか?

    また、Workerロール単独でローカルにあるファイルをアップロードするコードのみで動作させた場合はどのような動作をするのでしょうか?

    また、ローカルでのエミュレータの動作でしょうか?それともAzureにアップロードしたら動かなくなったのでしょうか?

    すいませんが、もう少し現象の切り分けをお願いします。

    • 回答としてマーク 白川雪 2011年1月21日 1:28
    2011年1月20日 3:25
  • 現状の説明がわかりにくくてすいません。

    >まず確認ですが、コンテナとはブロブストレージのことでしょうか?それとも、なにか別のものでしょうか?

    こちらはブロブストレージの事になります。

    >あとWorkerRoleではコンテナのファイルを取得できているのでしょうか?

    ファイルの取得はできているはずです(他のサイトのサンプルソースをちょっと編集しただけなので)

    >また、Workerロール単独でローカルにあるファイルをアップロードするコードのみで動作させた場合はどのような動作をするのでしょうか?

    Workerロール単独での動作方法が勉強不足の為わかりません。申し訳ないです。

    >また、ローカルでのエミュレータの動作でしょうか?それともAzureにアップロードしたら動かなくなったのでしょうか?

    ローカルでの動作になります。

    よろしくお願い致します。

    2011年1月20日 4:08
  • 白川雪さん

    割と普通と申します

     

    現象に関しての切り分けが困難ならば、ブロブストレージ対する処理のソースコードを張り付けて頂いた方が他のメンバーもアドバイスがしやすいと思います。「WebRoleとWorkerRole側でそれぞれ違う処理をしているのでは?」と考えている方もいると思いますので、よろしければコードの提示を推奨させてください。

    ※bird982000さんの発言通り、通常WorkerRole側でもWebRole側でも同様の処理が可能だと思いますので

    2011年1月20日 5:24
    モデレータ
  •  

    こんにちは。

    いつもブログを拝見させていただいております。

     

    現象に関してですが、ファイルをアップロード後、ファイルの読み込みをする前にseekをしておらずファイルを1byteも読み込めていないのが原因でした。

    bird982000様の仰るとおり、webロール側と同様の処理が可能でした。

    ソースにつきましては、ネット上のサンプルソースとほぼ同じ物なので割愛させていただきます(転載になる為)
    2011年1月20日 7:34
  • 結果のご報告有難うございます。無事動作したとの事で安心しました。bird982000さんの発言通り、Compute Emulator(ローカル)とホスティッドサービス(Azureポータル)では環境が違う可能性もありますので、注意してください(以下の例はTable Storageです)。

    http://d.hatena.ne.jp/waritohutsu/20100613/1276460707

     

     

    > いつもブログを拝見させていただいております。

    有難うございます。今後も情報を発信し続けますので、ご参考になれば幸いです。

    2011年1月20日 8:56
    モデレータ
  • 返信が遅くなり申し訳ございません。

    ローカル環境とAzureポータル環境での違いもあるのですね。

    まだまだAzureを始めたばかりなので、ローカル環境でしか試していないのですが、Azureの登録をしてポータル環境でも試してみたいと思います。

    bird982000様、割と普通様ありがとうございました。

    2011年1月21日 1:31
  • 同じく返信が遅くなってすみません。

    無事解決されたようでよかったです。

    割と普通さん丁寧なフォローありがとうございました。

     

    ※WebロールとWorkerロールの差はIISがあるかどうかの差で、両方共に基本的にWin2008Svrベースだと思っていていただいて問題ないです。

    2011年1月21日 2:04