首页 > 解决方案 > 在 IIS 上调用已部署的 .net 核心 API 时,“MS-ASPNETCORE-TOKEN”与预期的配对令牌不匹配

问题描述

在 .Net 核心应用程序 (3.1) 中调用端点时,我在日志和事件查看器中收到以下异常:

“MS-ASPNETCORE-TOKEN”与预期的配对令牌不匹配

我在默认网站下使用 IIS 部署了这个应用程序。我读过这个异常可能是由于与 Kestrel 和 IIS 的差异,所以我更新了CreateWebHostBuilder()包含UseKestrel()and UseIISIntegration(),特别是按照这个顺序。

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  WebHost.CreateDefaultBuilder(args)
  .ConfigureLogging(logger =>
  {
    logger.ClearProviders();
    logger.AddConsole();
    logger.AddDebug();
    logger.AddEventLog();
  })
  .UseStartup<Startup>()
  .UseKestrel()
  .UseIISIntegration();
}

在 appsettings 文件中,我将 url 设置为“Urls”:“http://localhost:5001”。这似乎没有得到尊重,因为导航到该 URL 会显示“无法显示此页面”。日志中提供了一个端口,但我认为这应该是红隼端口:

现在收听:http://localhost:20274 应用程序已启动。按 Ctrl+C 关闭。

我正在调用该端口的端点。作为附加说明,我使用 OutofProcess 托管模型运行它。

有关此问题的故障排除或解决方案的任何建议?

标签: c#asp.net-coreiis.net-coreasp.net-core-3.1

解决方案


推荐阅读