2017-09-28 7 views
3

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ファイルがないため、新しい機能プロジェクトを作成することは役に立ちません。

+0

あなたのコードは正確Azureの機能とILoggerですを使用して、私の作業コードのように見えます。 'Microsoft.NET.Sdk.Functions'以外のすべての参照されたNuGetパッケージを削除して、必要なものを追加すれば、問題は解決しますか? –

+0

はい、まさに!そうです。詳細は他のコメントをご覧ください。簡単に言うと、すべての "Microsoft.Azure.WebJobs。*"アセンブリは冗長でした。 – wpfwannabe

答えて

2

Microsoft.Extensions.Logging.Abstractionsは正しいアセンブリです。

古いNuGetパッケージを直接参照している可能性があります(例えば、Microsoft.Azure.WebJobs)。その場合は、必ず取り外してください。あなたには、いくつかの追加の結合を使用している場合を除き、ごcsproj参照は、このような単純なはずです。

<ItemGroup>   
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.4" /> 
</ItemGroup> 
+0

あなたは頭の爪を打つ!ありがとう。私は古いプロジェクトテンプレートに 'Microsoft.Azure.WebJobs'とその他のものを追加したと思います。それらのすべてを削除し、 'Microsoft.NET.Sdk.Functions'を残しておくと、完全に機能します。 – wpfwannabe

関連する問題