Fehler in Azure Function App VS 2019 .NET 3.0 - Methode nicht gefunden: 'IFunctionsHostBuilder.get_Services ()'

8

Problem mit Azure-Funktionen / EFSQLSERVER .NET CORE 3.0:

Fortpflanzen:

  • Verwenden Sie Visual Studio 2019 16.2.1
  • Verwenden Sie die Azure-Funktionsvorlage, um ein Projekt zu erstellen.
  • Das Ziel-Framework wurde in .NET Core 3.0 geändert
  • Fügen Sie über den Nuget Package Manager die Microsoft.EntityFrameworkCore.SqlServer-Referenz "Version =" 3.0.0 "hinzu.
  • Excecut Function App mit F5

Dies führt zu einem Fehler, der in den folgenden Ausschnitten angezeigt wird. Ist jemand auf dieses Problem gestoßen?

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

Meine Nuget-Pakete aus der csproj-Datei.

<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

Geben Sie hier die Bildbeschreibung ein

Athadu
quelle
Dies müssen Paketprobleme sein, da ich ein ähnliches Problem habe. Nur durch Hinzufügen des http-Erweiterungspakets (Microsoft.Http.Extensions) wird dieser Fehler angezeigt (ohne Code aus diesem Paket zu verwenden). Durch Entfernen wird der Fehler behoben. Ich bin am 16.3.2 mit der gleichen Webjobs-Version.
MarkD

Antworten:

3

Überprüfen Sie dieses Microsoft-Dokument derzeit, da ASP.NET Core 3.0 derzeit nicht für Azure App Service verfügbar ist .

Azure Functions 3.0, das vollständig mit Core 3.0 kompatibel sein wird, wird ab Oktober verfügbar sein. Weitere Informationen finden Sie hier . Es ist jedoch noch nicht veröffentlicht.

Aufgrund dieses Problems konnten Sie feststellen, dass Azure Function 2.0 derzeit nicht mit Microsoft.Extensions. * 3. * -Paketen funktioniert und keinen Code für .Net Core 3.0-Dienste freigeben kann.

Weitere Informationen zu Azure Fuction 3.0 finden Sie in dieser Diskussion .

George Chen
quelle
Ich habs. Vielen Dank.
Athadu
Gerüchten zufolge wird die Veröffentlichungsvorschau bis zum 25.
sjokkogutten
2

Sie können jetzt .net Core 3.0 verwenden, um Azure-Funktionen zu erstellen. Aktualisieren Microsoft.NET.Sdk.Functionsauf 1.0.30-beta2und einstellen AzureFunctionsVersionauf v3-preview.

Weitere Informationen zum Entwickeln von Azure-Funktionen mit .NET Core 3.0 finden Sie hier

Geben Sie hier die Bildbeschreibung ein

Sie können DI jetzt mit verwenden 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>();
        }
    }
}
sjokkogutten
quelle
Dies hat bei mir funktioniert - falls das obige Update nicht funktioniert und das Funktionsprojekt Nuget Microsoft.EntityFrameworkCore 3.1.0 verwendet, Downgrade auf 3.0.1, andernfalls tritt der gleiche Fehler auf
Felice Anno
-1

Bis Azure Functions 3.0 als stabile Version verfügbar ist, scheint es am einfachsten zu sein, das Microsoft.Extensions.HttpPaket auf 2.2.0 herunterzustufen :

Es hat mir bei dem gleichen Problem geholfen, da es derzeit keine andere Problemumgehung zu geben scheint. Selbst die verfügbaren Beta-Pakete funktionieren nicht auf einem Build-Server.

Geben Sie hier die Bildbeschreibung ein

Weitere Details finden Sie hier: Abhängigkeitsinjektion für Azure-Funktionen - Fehler beim Verweisen auf die Klassenbibliothek (Github).

Qualitätskatalysator
quelle