Microsoft.AspNetCore.Antiforgery 未找到
Microsoft.AspNetCore.Antiforgery was not found
我正在将 asp.net 核心 2.0 网站部署到 IIS 10。
我已确保我的应用在 program.settings 文件中使用正确的 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();
}
在我的 startup.cs 文件中:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<IISOptions>(options =>
{
});
services.AddMvc();
}
然而,当我从命令行 运行 dotnet website.dll 时,我在命令行 window:
中收到以下错误消息
An assembly specified in the application dependencies manifest
(website.deps.json) was not found:
package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.1'
path: 'lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll' This assembly was expected to be in the local runtime store as the
application was published using the following target manifest files:
aspnetcore-store-2.0.3.xml
根据错误消息,我猜测 Microsoft.AspNetCore.Antiforgery 在我发布时没有被捆绑,因为我在调试时没有收到此错误。
如何确保我的应用在发布到实时环境时可以找到 Microsoft.AspNetCore.Antiforgery?
编辑:这是一个基本的 .net 核心网站。除了上述针对使用 IIS 部署的更改外,目前还没有对标准项目进行任何更改。
当我从 IIS 而不是命令行 运行 项目时,我收到 502.5 错误消息。
如果您实际使用该库,请确保您的 *.csproj 文件具有相应的显式引用:
<PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="..." />
然后,使用 PublishWithAspNetCoreTargetManifest 属性 来解决上述清单不匹配的问题。
查看以下线程以了解有关部署时可能出现的问题的更多信息:
An assembly specified in the application dependencies manifest (RhWeb.deps.json) was not found
我能够通过将服务器上的 .net 核心运行时更新到 v2.0.3 来解决这个问题。
如果
会出现此问题
- 您有一个现有服务器 运行 v2.0.0 的 .net 核心运行时。
- 您创建了一个面向 SDK v2.0.3 的应用程序
- 您将 v2.0.3 应用程序发布到服务器 运行 v2.0.0
通过在服务器上安装v2.0.3 运行时可以解决此问题。您可以在此处 https://www.microsoft.com/net/download/windows
从 Microsoft 站点下载运行时
如果调用 Antiforgery 但未安装 Antiforgery,也会出现此问题。
可以通过 Nuget 包管理器安装 Microsoft.AspNetCore.Antiforgery 来修复。
我使用此解决方案在我的内部 Windows 服务器上解决了这个问题
* 转到 netcore https://github.com/dotnet/core/tree/master/release-notes
* 转到最新版本的核心运行时 2.?
* 在我的例子中下载 DotNetCore.2.0.6-WindowsHosting.exe
https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.6-download.md#net-core-runtime-only-installation
在服务器上安装这个,我的错误就解决了。希望这对任何人都有帮助。
我遇到了这个问题 - 简单的解决方法,实际安装 NuGet 包(我没有使用它)。
Microsoft.AspNetCore.Antiforgery
已发布、部署 - 修复了问题。
在另一种情况下,当我发布项目时,很多 dll 都没有放在发布文件夹中 - 包括 Antiforgery。下面似乎强制发布添加所有必需的 dll。
编辑您的 projectname.json 文件以确保 PropertyGroup
包含 PublishWithAspNetCoreTargetManifest = false
:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
想知道为什么上面的方法有效?!
将 Microsoft.AspNetCore.All
从 v2.0.7 更新到 v2.0.8(当时最新)然后发布到 运行 .NET Core Runtime v2.0.7(最新的时间)。
已降级 Microsoft.AspNetCore.All
回到 v2.0.7,重新发布,一切正常。
如果您根据链接的屏幕截图将应用程序发布为 self-contained ASP.NET Core 2.2 应用程序(我没有足够的内联图像代表),它将解决此问题。
独立的:
这可以在编辑发布设置时进行设置。
如果此问题与您的 Razor 邮件模板有关,您可以添加“Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation”。当我添加时,问题就解决了。
我正在将 asp.net 核心 2.0 网站部署到 IIS 10。
我已确保我的应用在 program.settings 文件中使用正确的 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();
}
在我的 startup.cs 文件中:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<IISOptions>(options =>
{
});
services.AddMvc();
}
然而,当我从命令行 运行 dotnet website.dll 时,我在命令行 window:
中收到以下错误消息An assembly specified in the application dependencies manifest (website.deps.json) was not found: package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.1' path: 'lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll' This assembly was expected to be in the local runtime store as the application was published using the following target manifest files: aspnetcore-store-2.0.3.xml
根据错误消息,我猜测 Microsoft.AspNetCore.Antiforgery 在我发布时没有被捆绑,因为我在调试时没有收到此错误。
如何确保我的应用在发布到实时环境时可以找到 Microsoft.AspNetCore.Antiforgery?
编辑:这是一个基本的 .net 核心网站。除了上述针对使用 IIS 部署的更改外,目前还没有对标准项目进行任何更改。
当我从 IIS 而不是命令行 运行 项目时,我收到 502.5 错误消息。
如果您实际使用该库,请确保您的 *.csproj 文件具有相应的显式引用:
<PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="..." />
然后,使用 PublishWithAspNetCoreTargetManifest 属性 来解决上述清单不匹配的问题。 查看以下线程以了解有关部署时可能出现的问题的更多信息:
An assembly specified in the application dependencies manifest (RhWeb.deps.json) was not found
我能够通过将服务器上的 .net 核心运行时更新到 v2.0.3 来解决这个问题。
如果
会出现此问题- 您有一个现有服务器 运行 v2.0.0 的 .net 核心运行时。
- 您创建了一个面向 SDK v2.0.3 的应用程序
- 您将 v2.0.3 应用程序发布到服务器 运行 v2.0.0
通过在服务器上安装v2.0.3 运行时可以解决此问题。您可以在此处 https://www.microsoft.com/net/download/windows
从 Microsoft 站点下载运行时如果调用 Antiforgery 但未安装 Antiforgery,也会出现此问题。
可以通过 Nuget 包管理器安装 Microsoft.AspNetCore.Antiforgery 来修复。
我使用此解决方案在我的内部 Windows 服务器上解决了这个问题
* 转到 netcore https://github.com/dotnet/core/tree/master/release-notes
* 转到最新版本的核心运行时 2.?
* 在我的例子中下载 DotNetCore.2.0.6-WindowsHosting.exe
https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.6-download.md#net-core-runtime-only-installation
在服务器上安装这个,我的错误就解决了。希望这对任何人都有帮助。
我遇到了这个问题 - 简单的解决方法,实际安装 NuGet 包(我没有使用它)。
Microsoft.AspNetCore.Antiforgery
已发布、部署 - 修复了问题。
在另一种情况下,当我发布项目时,很多 dll 都没有放在发布文件夹中 - 包括 Antiforgery。下面似乎强制发布添加所有必需的 dll。
编辑您的 projectname.json 文件以确保 PropertyGroup
包含 PublishWithAspNetCoreTargetManifest = false
:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
想知道为什么上面的方法有效?!
将 Microsoft.AspNetCore.All
从 v2.0.7 更新到 v2.0.8(当时最新)然后发布到 运行 .NET Core Runtime v2.0.7(最新的时间)。
已降级 Microsoft.AspNetCore.All
回到 v2.0.7,重新发布,一切正常。
如果您根据链接的屏幕截图将应用程序发布为 self-contained ASP.NET Core 2.2 应用程序(我没有足够的内联图像代表),它将解决此问题。
独立的:
这可以在编辑发布设置时进行设置。
如果此问题与您的 Razor 邮件模板有关,您可以添加“Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation”。当我添加时,问题就解决了。