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.
эта проблема возникает, если
- у вас есть существующий сервер под управлением v2.0.0 среды выполнения .net core.
- вы создаете приложение для таргетинга v2.0.3 из SDK
- вы публикуете 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) был не найдено
ошибка 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, переиздано, и все работает.