1

azure-webjobs-sdk-samples (1.0.0-rc1) ( https://github.com/Azure/azure-webjobs-sdk-samples/tree/master/BasicSamples/BlobOperations )から BlobOperations サンプルを実行すると、次の問題。

WebJob が開始されると、BlobTriggers は正常に実行されます。

Job host started
Executing: 'Functions.BlobNameFromQueueMessage' because New queue message 
    detected on 'persons'.
Executing: 'Functions.BlobToBlob' because New blob detected: 
    input/BlobOperations.txt
Executing: 'Functions.BlobTrigger' because New blob detected: 
    output/BlobOperations.txt

しかし、新しいファイルを「入力」(または「出力」) コンテナーに追加しても、10 分以上待っても何も起こりません。

Web ジョブを再起動すると、アップロードたファイルが BlobTrigger によって取得されます。

これは、サンプルの (変更されていない) BlobTrigger です。

public static void BlobToBlob([BlobTrigger("input/{name}")] TextReader input, 
    [Blob("output/{name}")] out string output)
{
    output = input.ReadToEnd();
}

サンプルでは、​​Azure Webjobs SDK の最新バージョンを使用しています。

<packages>
  <package id="Microsoft.Azure.WebJobs" version="1.0.0-rc1" targetFramework="net45" />
  <package id="Microsoft.Azure.WebJobs.Core" version="1.0.0-rc1" targetFramework="net45" />
  <package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" />
  <package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" />
  <package id="Microsoft.Data.Services.Client" version="5.6.0" targetFramework="net45" />
  <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.8.0.0" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
  <package id="System.Spatial" version="5.6.0" targetFramework="net45" />
  <package id="WindowsAzure.Storage" version="4.0.1" targetFramework="net45" />
</packages>

パッケージの場所 (私の場合は共有の場所 - D:\Development\Nuget.Packages にあります) と AzureWebJobsDashboard および AzureWebJobsStorage 接続文字列を除いて、サンプルのコードは変更していません。

本番環境に入ろうとしている「実際の」プロジェクトでも同じ問題があります。

これはバグですか、それとも何か間違っていますか?

4

3 に答える 3

1

私は同じ問題を抱えていましたが、トリガーは Azure Storage Explorer を介してアップロードされたファイルに対しては機能しますが、Visual Studio からアップロードされたときには機能しないことがわかりました。内部で奇妙なことが起こっている可能性がありますが、私が確認できる唯一の違いは、Azure Storage Explorer がデフォルトで application/octet-stream に設定されている正しい MIME タイプを Visual Studio が割り当てていることです。これにより違いが生じる場合は、MP4 ファイルでのみテストしています。

Azure Storage Explorer と Visual Studio の両方を使用してさらにテストを行っている間に、100% 信頼できるわけではなく、Azure Storage Explorer からのアップロードも見逃されていることがわかりました。

別の回答で説明されている nuget パッケージの問題に問題がどのように関連している可能性があるかわかりません。

于 2015-02-12T16:15:11.803 に答える
0

私の問題の原因を見つけました: 共有 NuGet パッケージの場所 (私の場合は "D:\Development\Nuget.Packages") を使用しないと、すべて正常に動作します! デフォルトの場所は、ソリューション ディレクトリのルートにある "packages" ディレクトリです。

共有パッケージ フォルダーに古いバージョンのパッケージ (「Microsoft.Azure.WebJobs.0.5.0-beta」や「Microsoft.Azure.WebJobs.Core.0.5.0-beta」など) が存在することが原因であると想定しています。私は実際にそれをテストしていませんが、私の問題の。欲しい人がいたら教えてください。

更新:以下のコメントで Pranav Rastogi の質問に答えたかったのですが、プロジェクトを "D:\Development\Nuget.Packages" (パッケージ フォルダーの削除、プロジェクト ファイルのヒントパスの編集、VS の再起動) を使用するように戻したとき、私は問題を再現できませんでした: BlobTrigger は、想定どおりに「入力」コンテナーにアップロードしたファイルを取得しました...

于 2014-10-10T07:39:05.510 に答える