首页 > 解决方案 > .Net Core 5 WebAPI 在生产中缺少 ClientId

问题描述

我有一个 WebAPI,我可以在 4 个不同的地方调试/部署,无需更改代码,而且它在生产中的作用不同。在下图中,左侧显示本地开发机器(VS 和 IIS),右侧显示生产服务器,都是 IIS,一个用于从 prod 暂存一个。它一开始是我认为的 CORS 问题……我可以看出标头没有被发送和接收。但是当我深入研究时,我可以看到它在那之前就开始了。意思是没有发送 ClientId (AzureAd),尽管它显然在其他 3 个环境场景中运行良好。

在此处输入图像描述

然后我使用了在这个问题中找到的 chrome://net-export/ 。当我深入研究结果时,我一直走到停止日志记录之前,当显示错误并且我可以看到 ClientId 正在发送(第二张图像显示从网络导出文件中清除)。访问令牌也被发回

在此处输入图像描述

正在返回的响应 在此处输入图像描述

请求和响应都显示为套接字连接。我对此知之甚少,无法知道可能产生的影响或影响 在此处输入图像描述

所以,我一直在为此苦苦挣扎,现在完全不知所措。登台和生产是同一台服务器。这不是一个新的生产站点。它实际上已经运行了一年多并且运行良好。它是托管代码,在 Win 12 服务器上的 IIS 上运行。

以下是不同之处:这是在 .net 核心升级之后。同样,在其他任何地方都可以使用,即使在同一台服务器上也是如此。

在我完全秃顶之前有什么想法吗????

标签: .net-coreazure-active-directorywebapi

解决方案


更新:我终于解决了这个问题。在 web.config 中,我更改了 ASPNETCORE_ENVIRONMENT 值,它立即开始工作。

这是不太常见的问题之一,但将来可能对某人有所帮助。Web.Config 从未在我的脑海中浮现过所有这一切。在这一点上,这简直是绝望的事情。我发誓有时只是问这个问题就是魔法。:-)

在此处输入图像描述


推荐阅读