ASP.NET API не может опубликовать на лазурном сервере

Я пытаюсь опубликовать C# API в azure, я выполнил все шаги в эта документация здесь, но по какой-то причине, когда я публикую приложение, сборка завершается успешно и вылетает при выполнении этой строки ниже

Generating swagger file to 'C:\Users\user\Projs\API\bin\Release\netcoreapp3.1\swagger.json'.

и единственный журнал ошибок, который печатается, это

Failed to generate swagger file. Error dotnet swagger tofile --serializeasv2 --output "C:\Users\user\Downloads\Projs\API\bin\Release\netcoreapp3.1\swagger.json" "C:\Users\user\Downloads\Projs\API\bin\Release\netcoreapp3.1\API.dll" v1

Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'




Be sure that the Startup.cs for your application is calling AddSwaggerGen from within ConfigureServices in order to generate swagger file. Visit https://go.microsoft.com/fwlink/?LinkId=2131205&CLCID=0x409 for more information.

Это мой startup.cs

 public void ConfigureServices(IServiceCollection services)
        {

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc(
                    "v1",
                    new Microsoft.OpenApi.Models.OpenApiInfo { Title = "My API", Version = "v1" });
            });

        }


  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthentication();
            app.UseSwagger(c =>
            {
                c.SerializeAsV2 = true;
            });

            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("v1/swagger.json", "MyAPI V1");
            });

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

Это мой файл .csproj

<Project Sdk = "Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
      <UseNETCoreGenerator>true</UseNETCoreGenerator>
      <UserSecretsId>d844b2a8-00b0-473d-8f97-9dca9f2899bd</UserSecretsId>
  </PropertyGroup>

    <PropertyGroup Condition = "'$(TargetFramework)' == 'net45'">
        <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    </PropertyGroup>
  <ItemGroup>
    <Folder Include = "Model\" />
    <Folder Include = "Context\" />
    <Folder Include = "Contracts\ServiceResponse\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include = "Microsoft.AspNet.SignalR" Version = "2.4.1" />
    <PackageReference Include = "Microsoft.AspNetCore.Authentication.JwtBearer" Version = "3.1.13" />
    <PackageReference Include = "Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version = "3.1.13" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore" Version = "3.1.11" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore.Design" Version = "3.1.11">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include = "Microsoft.EntityFrameworkCore.Relational" Version = "3.1.11" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore.SqlServer" Version = "3.1.10" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore.SqlServer.Design" Version = "1.1.6" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.11">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include = "Newtonsoft.Json" Version = "13.0.1" />
    <PackageReference Include = "AutoMapper" Version = "10.1.1" />
    <PackageReference Include = "Pomelo.EntityFrameworkCore.MySql" Version = "3.2.4" />
    <PackageReference Include = "Swashbuckle.AspNetCore" Version = "5.0.0" />
    <PackageReference Include = "System.IdentityModel.Tokens.Jwt" Version = "6.8.0" />
    <PackageReference Include = "System.Runtime" Version = "4.3.1" />
    
  </ItemGroup>
</Project>

Я пробовал решения по этим ссылкам, но ни одно из них не сработало.

Visual Studio 2017 - не удалось загрузить файл или сборку System.Runtime, Version = 4.1.0.0 или одну из его зависимостей.

https://github.com/Azure/azure-functions-vs-build-sdk/issues/160

Не удалось загрузить файл или сборку 'System.Runtime, Version = 4.2.1.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a'

Есть ли способ исправить это?

Обновлять: Я попробовал решение, которое сказал пользователь в потоке, чтобы добавить перенаправления привязки, я добавил web.config и app.config и добавил привязки, но он по-прежнему не может опубликовать

Обновление 2: Я не смог найти решение, поэтому я установил .net 5.0, и он сработал

ASP.NET API не может опубликовать на лазурном сервере

Вы видите свою конечную точку чванства? Кажется, это связано с вашей версией SwashBuckle.AspnetCore, но не может ее подтвердить, возможно, вам может помочь более ранняя версия nuget.

Juanma Feliu 30.03.2021 20:52

@Juanma Feliu, когда я перехожу к https://localhost:44342/swagger/v1/swagger.json, он отлично показывает JSON

Rasheen Ruwisha 30.03.2021 20:54

Ваша версия Newtonsoft.Json тоже может быть испорчена, поскольку Pomelo использует более раннюю версию, чем 13.0.1. Можете ли вы отредактировать свой .csproj и удалить ссылку на пакет System.Runtime?

Juanma Feliu 30.03.2021 21:08

@Juanma Feilu Я удалил System.Runtime и также удалил Newtonsoft.Json, потому что я его не использую. Но я все равно получаю ту же ошибку

Rasheen Ruwisha 30.03.2021 21:18

пожалуйста, добавьте скриншот пакета nuget из вашего проекта.

Juanma Feliu 30.03.2021 21:25

@JuanmaFeliu Скриншот добавил!

Rasheen Ruwisha 30.03.2021 23:46

Поскольку ваш проект нацелен на netcoreapp3.1, попробуйте использовать все пакеты Nuget фреймворка версии 3. *. * Вместо 5. *. *.

Prasath 31.03.2021 01:00

@Prasath все находится на 3. *. * За исключением чванства, потому что, когда я понижаю его, он не принимает его как api

Rasheen Ruwisha 31.03.2021 02:01
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
8
47
0

Другие вопросы по теме