Azure関数の以前の(数ヶ月前)バージョンから現在のプロジェクトにアップグレードした後、VSからの起動時に次のエラーが発生します。Azure関数(ILoggerまたはTraceWriter)の最後のロギングパラメータが受け入れられません。
GetLoginUrl:Microsoft.Azure.WebJobs.Host:エラーのインデックス方法 'Login.GetLoginUrl'。 Microsoft.Azure.WebJobs.Host:ILogger型に 'log'パラメータをバインドできません。パラメータTypeがバインディングによってサポートされていることを確認します。バインディング拡張機能(ServiceBus、Timersなど)を使用している場合は、スタートアップコード内の拡張機能(例:config.UseServiceBus()、config.UseTimers()など)の登録メソッドを呼び出したことを確認してください)。
前に、私は私のメソッドの最後のパラメータとしてTraceWriter log
を持っていましたが、その後、私は私が代わりにを使用する必要がありますがわかりました。私が変更を行う前に、私は上記と同じエラーを受けていました。
は、アセンブリMicrosoft.Extensions.Logging.Abstractions
にマッピングされているようです。おそらくこれがなぜ認識されないのでしょうか?どのを使用する必要がありますか?メソッドのシグネチャを次に示します。
[FunctionName("GetLoginUrl")]
public static HttpResponseMessage GetLoginUrl(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)]HttpRequestMessage req,
ILogger log)
これをAzureにデプロイしようとはしませんでした。
残念ながら、これを修正するために、参照する.CSファイルがないため、新しい機能プロジェクトを作成することは役に立ちません。
あなたのコードは正確Azureの機能とILoggerですを使用して、私の作業コードのように見えます。 'Microsoft.NET.Sdk.Functions'以外のすべての参照されたNuGetパッケージを削除して、必要なものを追加すれば、問題は解決しますか? –
はい、まさに!そうです。詳細は他のコメントをご覧ください。簡単に言うと、すべての "Microsoft.Azure.WebJobs。*"アセンブリは冗長でした。 – wpfwannabe