Lỗi trong ứng dụng chức năng Azure VS 2019 .NET 3.0 - Không tìm thấy phương thức: 'IFiftshostBuilder.get_Service ()'


9

Sự cố với Hàm Azure / EFSQLSERVER .NET CORE 3.0:

Để sao chép:

  • Sử dụng Visual Studio 2019 16.2.1
  • Sử dụng mẫu Chức năng Azure để tạo dự án.
  • Thay đổi khung mục tiêu thành .NET Core 3.0
  • Thêm tham chiếu Microsoft.EntityFrameworkCore.SqlServer "Version =" 3.0.0 "thông qua Trình quản lý gói Nuget.
  • Ứng dụng chức năng thực thi bằng F5

Kết quả là một lỗi như hiển thị trong các đoạn sau. Bất cứ ai cũng gặp phải vấn đề này?

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

Gói nuget của tôi từ tập tin csproj.

<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

nhập mô tả hình ảnh ở đây


Đây phải là vấn đề gói vì tôi có một vấn đề tương tự. Chỉ bằng cách thêm gói tiện ích mở rộng http (Microsoft.Http.Extensions) tôi gặp lỗi này (không sử dụng bất kỳ mã nào từ gói đó). Bằng cách loại bỏ nó, lỗi sẽ biến mất. Tôi đang trên 16.3.2 với cùng một phiên bản webjobs.
MarkD

Câu trả lời:


3

Hiện tại, ASP.NET Core 3.0 hiện không có sẵn cho Azure App Service, hãy kiểm tra tài liệu Microsoft này .

Azure Function 3.0, tương thích hoàn toàn với Core 3.0, sẽ có mặt vào tháng 10, kiểm tra tại đây . Tuy nhiên nó không được phát hành ngay bây giờ.

Từ vấn đề này , bạn có thể thấy Azure Function 2.0 ngay bây giờ không hoạt động với bất kỳ gói Microsoft.Extensions nào. * 3. * và không thể chia sẻ mã với các dịch vụ .Net Core 3.0.

Thông tin thêm về Azure Fraction 3.0 kiểm tra cuộc thảo luận này .


Hiểu rồi. Cảm ơn bạn.
Athadu

Có tin đồn rằng bản xem trước xuất bản sẽ có vào ngày 25 tháng 10
sjokkogutten

2

Bây giờ bạn có thể sử dụng .net core 3.0 để tạo các hàm azure. Cập nhật Microsoft.NET.Sdk.Functionsđến 1.0.30-beta2và thiết lập AzureFunctionsVersionđể v3-preview.

Đọc thêm về Phát triển chức năng Azure bằng .NET Core 3.0 tại đây

nhập mô tả hình ảnh ở đây

Bây giờ bạn có thể sử dụng DI bằng cách sử dụng 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>();
        }
    }
}

Điều này làm việc cho tôi - trong trường hợp việc sửa chữa trên không hoạt động và việc sử dụng dự án chức năng NuGet Microsoft.EntityFrameworkCore 3.1.0, hạ cấp xuống 3.0.1 nếu không sẽ có cùng lỗi
Felice Anno

-1

Cho đến khi Azure Chức năng 3.0 có sẵn dưới dạng bản phát hành ổn định, có vẻ như dễ nhất là hạ cấp Microsoft.Extensions.Httpgói xuống 2.2.0:

Nó đã giúp tôi với cùng một vấn đề vì dường như không có cách giải quyết nào khác hiện tại. Ngay cả các gói beta có sẵn cũng không hoạt động trên máy chủ xây dựng.

nhập mô tả hình ảnh ở đây

Thêm chi tiết tại đây: Chức năng tiêm phụ thuộc Azure - lỗi khi tham chiếu thư viện lớp (Github).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.