Microsoft.AspNetCore.Antiforgery не найден

Я развертываю asp.net основной веб-сайт 2.0 для IIS 10.

я убедился, что мое приложение использует правильную конфигурацию для ISS в программе.файл настроек.

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();
}

и в моем запуске.cs файл:

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<IISOptions>(options =>
        {
        });
        services.AddMvc();
    }

еще когда я запускаю веб-сайт dotnet.dll из командной строки я получаю сообщение об ошибке ниже, показанное в окне командной строки:

сборка, указанная в манифесте зависимостей приложения (вебсайт.депс.формат JSON) не найдено: пакет: 'Майкрософт.AspNetCore.Antiforgery', версия: '2.0.1' путь: 'lib / netstandard2.0 / Microsoft.AspNetCore.Антифорджери.dll " эта сборка должна была находиться в локальном хранилище среды выполнения как приложение было опубликовано с использованием следующих целевых файлов манифеста: aspnetcore-store-2.0.3.в XML

основываясь на сообщении об ошибке, я предполагаю Microsoft.AspNetCore.Antiforgery не поставляется при публикации, Так как я не получаю эту ошибку при отладке.

Как я могу гарантировать, что мое приложение может найти Microsoft.AspNetCore.Antiforgery при публикации в живой среде?

EDIT: это базовый веб-сайт .net core. В настоящее время в стандартный проект не было внесено никаких изменений, кроме вышеуказанных изменений для развертывания с IIS.

когда я запускаю проект из IIS вместо командной строки, я получаю сообщение об ошибке 502.5.

6 ответов


Я смог исправить эту проблему, обновив среду выполнения .net core на сервере до версии v2.0.3.

эта проблема возникает, если

  1. у вас есть существующий сервер под управлением v2.0.0 среды выполнения .net core.
  2. вы создаете приложение для таргетинга v2.0.3 из SDK
  3. вы публикуете v2.0.3 приложение к серверу под управлением v2.0.0

проблема может быть решена путем установки v2.0.3 выполнения на сервере. Вы можете скачать среду выполнения с сайта microsoft здесь https://www.microsoft.com/net/download/windows


Если вы используете эту библиотеку, убедитесь, что ваш *.файл csproj имеет соответствующую прямую ссылку:

<PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="..." />

затем с PublishWithAspNetCoreTargetManifest свойство для решения вышеупомянутой проблемы с несоответствующим манифестом. Проверьте следующие темы, чтобы узнать больше о возможных проблемах во время его развертывания:

сборка, указанная в манифесте зависимостей приложения (RhWeb.депс.в JSON) был не найдено

опубликованное приложение отсутствует сборка (отсутствует связанное хранилище времени выполнения ...) [2.0.0-preview2-005905]

ошибка HTTP 502.5-Microsoft.AspNetCore.Антифорджери.dll файлы


у меня была эта проблема-простой обходной путь, фактически установите пакет NuGet (я не использовал его).

Microsoft.AspNetCore.Antiforgery

опубликовано, развернуто - Исправлена проблема.

в другом случае, когда я опубликовал проект, многие библиотеки DLL не были помещены в папку публикации, включая Antiforgery. Ниже показано, что публикация принудительно добавляет все необходимые библиотеки DLL.

редактировать имя_проекта.файл json для обеспечения PropertyGroup содержит PublishWithAspNetCoreTargetManifest = false:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>

интересно узнать, почему выше?!


эта проблема также возникает, если вызывается Antiforgery, но Antiforgery не установлен.

можно исправить, установив Microsoft.AspNetCore.Antiforgery менеджером пакетов Nuget.


я исправил эту проблему на моем внутреннем windowsserver с этим решением
* перейти к netcore https://github.com/dotnet/core/tree/master/release-notes
* перейдите к последней версии core runtime 2.?
* скачать DotNetCore.2.0.6-WindowsHosting.exe в моем case
https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.6-download.md#net-core-runtime-only-installation

установить на сервер и ошибка была решена для меня. Надеюсь, это поможет кому-нибудь.


получил эту ошибку после обновления Microsoft.AspNetCore.All от v2.0.7 к v2.0.8 (последний в то время), а затем публикация на сервере под управлением .NET Core Runtime v2.0.7 (Последний в то время).

понизило Microsoft.AspNetCore.All вернуться к v2.0.7, переиздано, и все работает.