2017-08-15 6 views
0

新しいQueueTrigger Azure関数を作成するときに、入力をCloudQueueMessageに切り替えたいとします。それはその後、投げているので、機能のアプリが正しく、その後、その後のアイテムをポップしているCloudQueueMessageタイプを変更すると、例外バインディングパラメータ 'myQueueItem'が発生します。 mscorlib:文字列リファレンスが文字列のインスタンスに設定されていません

8/15/17 12:16:07 AM] Function started (Id=a137d868-1256-4a67-a225-8a95fb0e31fb) [8/15/17 12:16:07 AM] Executing 'TokenRefresh' (Reason='New queue message detected on 'refreshtoken'.', Id=a137d868-1256-4a67-a225-8a95fb0e31fb) [8/15/17 12:16:07 AM] A ScriptHost error has occurred [8/15/17 12:16:07 AM] Exception while executing function: TokenRefresh. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'myQueueItem'. mscorlib: String reference not set to an instance of a String. [8/15/17 12:16:07 AM] Parameter name: s.

:私は下のエラーを取得する

public async static Task Run([QueueTrigger("%queue-name%", Connection = "AzureStorageConnection")]CloudQueueMessage myQueueItem, TraceWriter log)

私はに署名を変更しましたそのキュー内のすべてのアイテムが急速に例外を起こすと、毒キューに移動します。私は最新の関数sdkとwindows azure sdk nugetパッケージを使用しています。

+0

あなたはVS2017プレビューツールを使用していますか?この関数に生成する 'function.json'ファイルを共有できますか? –

答えて

0

あなたの説明によると、私はAzureポータルでこの問題をチェックしました。私はそれが仕事ができる発見し、ここでは次のようにコードスニペットは、私のrun.csxファイルの下にある:

#r "Microsoft.WindowsAzure.Storage" 
using System; 
using Microsoft.WindowsAzure.Storage.Queue; 

[FunctionName("QueueTriggerCSharp")] 
public static void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")]CloudQueueMessage myQueueItem, TraceWriter log) 
{ 
    log.Info($"C# Queue trigger function processed: {myQueueItem.AsString}"); 
} 

結果:

2017-08-15T07:35:27.104機能が開始しました( ID = 0ed03b74-bc9c-408A-9607-55e2942f1d50)

2017-08-15T07:35:27.214 C#キュートリガ機能処理:サンプルキューデータ

2017-08-15T07:35:27.214完了機能(成功、ID = 0ed03b74-bc9c-408A-9607-55e2942f1d50、持続時間= 108ms)

ガース石工が述べたように、その後、私はそれをチェックしますVS 2017関数クラスライブラリを使用して私のローカル側。また、同様の問題How to change the parameters types using a queue trigger and a VS 2017 function class libraryとこのgit issueが見つかりました。この問題を解決するために参照できます。

+0

ありがとう、これは本当です、上記の私の答えを参照してくださいが、それはWindows.AzureStorage'の依存関係の不一致であることが判明したlib。残念ながら、これは私たちの関数への移行を示すものです。 – aarondcoleman

0

これは、リダイレクトされたバインディングであるv7.2.1の代わりにWindows.AzureStoragev8.2.1を使用しようとした結果です。 CloudQueueMessageオブジェクトはバージョン間の不一致であるため、関数ランタイムが依存する依存関係を使用する必要があります。 https://twitter.com/lindydonna/status/897333107354869760

そしてまた、彼らは他の依存関係のバージョンを許可しますときのために、ここで物事の状態に長時間の問題スレッド:

は機能PMによって確認 https://github.com/Azure/azure-webjobs-sdk-script/issues/992

関連する問題