gpt4 book ai didi

asp.net-core - 在 IIS 中运行 Web 应用程序时,HttpContext 为 NULL

转载 作者:行者123 更新时间:2023-12-01 12:04:11 24 4
gpt4 key购买 nike

我有两个应用程序,都在同一台 Windows 机器上运行。一个应用程序是 IdentityServer4,另一个是我自己的 Web 应用程序(服务器端 Blazor 应用程序)。

这两个 Web 应用程序都是使用 .NET Core 3.1 构建的。

当我导航到我的网络应用程序时,我首先被重定向到我的 IdentityServer4 应用程序。我登录,然后我被重定向回我的网络应用程序。

登录成功,因为IdentitServer 的日志中没有错误。另外,我看到某个 claim我的 Blazor 网页上的值(value)。我显示这个 claim通过CascadingAuthenticationState在我的 Blazor 页面中。通过那条路径,一切正常。

但是,每当我尝试通过 HttpContext 获取登录用户时在我的“代码隐藏”文件中,我得到了一个 Null 引用。例如:

public UserService(IHttpContextAccessor httpContextAccessor)
{
// HttpClient is NULL...
var httpCtx = _httpContextAccessor.HttpClient;
}

奇怪的是,当我在 Visual Studio 中本地运行我的应用程序时,一切正常。当我在 Visual Studio 中调试时,我看到 HttpContext设置了我所有的用户数据。

但是,出于某种原因 HttpContextNULL当我从 IIS 运行应用程序时。

我该如何解决这个问题?

最佳答案

如果在部署到 Azure 应用服务或 IIS 后发生 HttpContext 空引用异常,你可能忘记启用 WebSockets。
这是交易:

If the app runs on Windows with IIS: WebSockets must be enabled.

See the IIS/IIS Express support section.


看来这是一个 prerequisite你必须遵循。在处理了同样的问题并决定从 Visual Studio 中将我的应用程序发布到 Azure 之后,我最近才发现了这一点。在我这样做之后,Visual Studio 给了我一个很好的警告,告诉我在 Azure 应用服务上启用 WebSockets 协议(protocol)。

关于asp.net-core - 在 IIS 中运行 Web 应用程序时,HttpContext 为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59538132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com