Azure Function App VS 2019 .NET 3.0のエラー-メソッドが見つかりません: 'IFunctionsHostBuilder.get_Services()'


9

Azure Functions / EFSQLSERVER .NET CORE 3.0の問題:

再現するには:

  • Visual Studio 2019 16.2.1を使用する
  • Azure Functionテンプレートを使用してプロジェクトを作成します。
  • ターゲットフレームワークを.NET Core 3.0に変更
  • Nuget Package Managerを介してMicrosoft.EntityFrameworkCore.SqlServer "Version =" 3.0.0 "参照を追加します。
  • F5を使用した実行機能アプリ

次のスニペットに示すようにエラーになります。誰かがこの問題に遭遇しましたか?

Azure Functions Core Tools (2.7.1633 Commit hash: 45c7d86a3bbc9ed0a80a8f4199aa7ea80ccfb24e)
Function Runtime Version: 2.0.12673.0
[10/4/2019 6:13:14 PM] Building host: startup suppressed:False, configuration suppressed: False
[10/4/2019 6:13:14 PM] Loading startup extension 'Startup'
[10/4/2019 6:13:14 PM] Loaded extension 'Startup' (1.0.0.0)
[10/4/2019 6:13:14 PM] Loading startup extension 'DurableTask'
[10/4/2019 6:13:14 PM] Loaded extension 'DurableTask' (1.0.0.0)
[10/4/2019 6:13:14 PM] A host error has occurred
[10/4/2019 6:13:14 PM] FunctionApp5: Method not found: 'Microsoft.Extensions.DependencyInjection.IServiceCollection Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder.get_Services()'.
Value cannot be null.
Parameter name: provider

csprojファイルからの私のnugetパッケージ。

<ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="1.8.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
  </ItemGroup>
using Microsoft.Azure.Functions.Extensions.DependencyInjection;


[assembly: FunctionsStartup(typeof(FunctionApp5.Startup))]
namespace FunctionApp5
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            **var x = builder.Services;**

        }
    }
}

.NET Core 3.0

ここに画像の説明を入力してください


同様の問題があるため、これはパッケージの問題である必要があります。http拡張パッケージ(Microsoft.Http.Extensions)を追加しただけで、このパッケージのコードを使用せずにこのエラーが発生します。それを取り除くことで、エラーはなくなります。私は同じwebjobsバージョンで16.3.2を使用しています。
MarkD

回答:


3

現在のところ、ASP.NET Core 3.0は現在Azure App Serviceでは利用できません。このMicrosoftのドキュメントを確認してください。

Core 3.0と完全に互換性のあるAzure Functions 3.0は10月に利用可能になります。こちらを確認してください。ただし、現在はリリースされていません。

この問題から、Azure Function 2.0は現在、Microsoft.Extensions。* 3. *パッケージでは機能せず、.Net Core 3.0サービスとコードを共有できないことがわかります。

Azure Fuction 3.0の詳細については、このディスカッションを確認してください。


とった。ありがとうございました。
アサドゥ

噂によると、公開プレビューは10月25日までに利用可能になるとのことです
sjokkogutten

2

これで、.net core 3.0を使用してazure関数を作成できます。に更新Microsoft.NET.Sdk.Functions1.0.30-beta2てに設定AzureFunctionsVersionv3-previewます。

.NET Core 3.0を使用したAzure関数の開発の詳細については、こちらをご覧ください。

ここに画像の説明を入力してください

これで、DIを使用できます IFunctionsHostBuilder

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;

[assembly: FunctionsStartup(typeof(BI_Geo.AzureFunctions.Startup))]
namespace BI_Geo.AzureFunctions
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddScoped<IProcess, Process>();
        }
    }
}

これは私にとってはうまくいきました-上記の修正が機能せず、関数プロジェクトがnuget Microsoft.EntityFrameworkCore 3.1.0を使用している場合、3.0.1にダウングレードします。そうでない場合、同じエラーが発生します
Felice Anno

-1

Azure Functions 3.0が安定版リリースとして利用できるようになるまで、Microsoft.Extensions.Httpパッケージを2.2.0 にダウングレードするのが最も簡単なようです。

現時点では他に回避策はないようで、同じ問題を解決するのに役立ちました。利用可能なベータパッケージでさえ、ビルドサーバーで動作していません。

ここに画像の説明を入力してください

詳細はこちら:Azure関数の依存性注入-クラスライブラリ(Github)を参照する際のエラー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.